1. Objectif du Projet

Ce projet qui est liée a l’UE Statistique Inferentielle / Projet Stat-Info qui vise à mieux comprendre les raisons et cause des incendies en analysant des données statistiques. L’idée principale est de voir comment différentes variables influencent l’étendue des incendies, en utilisant des outils statistiques et informatiques.

Nous avons structuré notre rapport en trois sections principales : la Partie Informative, qui servira à présenter des informations générales afin d’aider le lecteur à comprendre notre projet avant de plonger dans les détails et les spécificités des sections Informatique et Statistique. La section Informatique va examiner minutieusement les techniques que nous avons mises en œuvre dans notre projet, en précisant toutes les informations indispensables. Et pour finir, la section Statistique qui nous aidera à détailler toutes les études que nous avons réalisées avec les diagrammes appropriés, l’interprétation et la solution de nos enjeux.

Finalement, nous avons constitué une section supplémentaire qui nous sert à énumérer tous les sites internet que nous avons consultés pour la rédaction et l’élaboration de notre projet. Il est à noter que les références sont présentées au format APA !

1.1 Utilisation de GitHub

Il faut également noter que lors de notre projet, qui se divisait en deux parties : Informatique et Statistique, nous avons utilisé GitHub. Cette plateforme collaborative nous a permis de travailler collectivement sur un code en définissant les étapes attribuées à chaque membre du groupe. Cette plateforme nous offre aussi la possibilité de fusionner tout le code en un unique fichier, sans nécessité de l’assembler manuellement.

Lien de GitHub

https://github.com/andrewelkahwaji24/ProjetStatInfoUT2.git

1.2 Utilisation de l’OpenData

Dans le cadre de ce projet, nous avons mené des recherches afin d’améliorer notre base de données, ce qui nous a amenés à exploiter les données ouvertes. Autrement dit, l’Open data consiste à rendre accessibles des données publiques, selon le gouvernement, que les utilisateurs peuvent exploiter.

Les différents secteurs de l’Open Data sont variés et servent à assurer la transparence des données.

Nous avons utilisé les données provenant de ce site internet:

https://bdiff.agriculture.gouv.fr/incendies

2. Partie Informative

Dans cette partie, nous allons considérer des données informatives avant de passer à la description de notre section Informatique et Statistique.

2.1 C’est quoi un incendie

L’incendie est un phénomène de combustion incontrôlée dans le temps et l’espace, dont la principale caractéristique est sa capacité à se propager rapidement.

Pour qu’une combustion puisse se produire, trois éléments habituellement réunis dans le « triangle du feu » sont indispensables : un matériau combustible, un agent comburant et une source d’énergie d’activation.

2.2 Causes des Incendies

Les raisons des incendies sont multiples, cependant, une grande majorité d’entre eux provient d’une action humaine.Comme la négligence, malveillance, préparation insuffisante aux catastrophes naturelles comme les séismes, les tsunamis

2.3 Consequences des Incendies

Les effets des incendies sont nombreux et graves. Elles ont des conséquences sur l’homme (asphyxie, intoxication due aux fumées, brûlures sévères), sur les entreprises (diminution de la production, dégâts matériels, licenciements) et sur l’environnement (contamination de l’air et de l’eau, ravage du paysage). Les principales causes de décès liés aux incendies sont l’intoxication par le monoxyde de carbone et la diminution de l’oxygène, plutôt que les flammes elles-mêmes. Pour plus d’informations, veuillez consulter l’article intégral ici.

3. Partie Informatique

La partie Informatique de notre Projet consiste à effectuer les démarches suivantes :

  1. Création de la Base de données
  2. Création de la connexion entre la Base de données et notre code source
  3. Établissement des Tables dans la Base de Données
  4. Insertion de données dans les tables
  5. Présenter les informations des tables dans la console
  6. Exportation des données dans les tables dans des fichiers CSV

3.1 Definition de quelques terme Informatiques

Avant d’initier notre compte-rendu en détaillant les phases et procédures que nous avons mises en place pour l’administration optimale de la section informatique de notre projet, nous allons définir quelques notions qui offriront un socle solide au lecteur.

  1. Une Base de Données regroupe un ensemble d’informations qui est organise pour être accessible , géré et mise a jour facilement par ses utilisateurs

  2. Une Base de Données Relationnelle.Il s’agit d’un type de base de données qui se distingue des autres par sa capacité à établir des liens entre diverses données.

  3. Un INNER JOIN est un type de jointure en SQL (Structured Query Language) qui autorise la fusion de lignes issues de deux tables basées sur un critère déterminé. L’idée est de ne conserver que les lignes qui ont une correspondance dans les deux tables. De plus, si une ligne d’une table n’a pas de correspondance dans l’autre table, elle ne sera pas intégrée au résultat.

  4. Un Cast() est une fonction SQL appelée CAST nous donne la possibilité de transformer un type de données en un autre.

  5. Une Requête SQL s’apparente à une question formulée à la base de données afin d’extraire des informations de celle-ci.

  6. La fonction SQL COUNT() est une commande qui nous donne la possibilité de déterminer le nombre de lignes dans un ensemble de résultats. Elle est fréquemment utilisée en conjonction avec la clause GROUP BY pour recenser le nombre d’occurrences d’une valeur spécifique.

  7. La fonction SUBSTR() nous donne la possibilité d’extraire une portion d’une chaîne de caractères. Elle est souvent employée dans le domaine du développement pour l’édition de texte dans une ou plusieurs bases de données.

  8. L’opération RIGHT JOIN permet d’unir deux tables en préservant l’ensemble des lignes de la table située à droite et en reliant celles se trouvant à gauche lorsqu’elles sont présentes. Des valeurs nulles sont insérées pour combler les colonnes absentes.

  9. L’opération LEFT JOIN fusionne deux tables tout en conservant l’ensemble des lignes de la table de gauche, en associant celles de droite uniquement lorsqu’elles sont présentes. Des valeurs nulles sont insérées pour combler les colonnes absentes.

  10. L’unité de mesure de longueur appelée pouce (symbole : in ou « ) est utilisée pour quantifier la longueur.

  11. Un GeoDataFrame est une structure de données exploitée dans la librairie GeoPandas afin d’enregistrer des données géospatiales sous forme de tableaux, semblable à un DataFrame de Pandas, mais intégrant des renseignements géométriques additionnels (tels que des points, des lignes ou des polygones).

  12. Un langage de programmation est un ensemble de règles et normes employées pour la création de logiciels informatiques.Ces programmes autorisent l’émission d’instructions à un ordinateur pour accomplir des tâches spécifiques.Un langage de programmation établit la syntaxe et la sémantique des instructions que peut comprendre une machine.

3.2 Bibliotheques Utilisees

Dans notre Partie Informatique on a utilisee le Language de Programmation Python de plus pour pouvoir effectuer la manipulation des doneees de la maniere optimale on a utilisee les bibliothèques necessaires:

  1. SQLite3 est une bibliothèque peu aisée qui facilite l’incorporation d’une base de données au sein d’une application, sans nécessiter l’utilisation d’un serveur séparé. Elle offre la possibilité de stocker et de gérer des données grâce aux requêtes SQL, ce qui la rend pratique pour des projets nécessitant une base de données locale. SQLite3 est parfaitement adaptée aux applications simples, car elle offre une gestion aisée des données, que ce soit pour les ajouts, les changements ou les suppressions, tout en restant performante et peu gourmande en ressources.

  2. La bibliothèque CSV de Python facilite la lecture et l’écriture de fichiers CSV, en fournissant des fonctionnalités pour gérer les données sous forme de lignes et de colonnes, tout en prenant en charge les séparateurs et les guillemets.

  3. NumPy est une bibliothèque Python performante dédiée au calcul scientifique, proposant des structures de données telles que les arrays multidimensionnels et des fonctions optimisées pour le traitement numérique.

  4. La bibliothèque random de Python offre la possibilité de produire des nombres au hasard et d’exécuter des sélections aléatoires à partir de listes ou d’intervalles de valeurs, grâce à des fonctions conçues pour simuler des événements fortuits.

  5. La bibliothèque OS facilite l’interaction avec le système d’exploitation en proposant des fonctionnalités pour gérer les fichiers, les dossiers et exécuter des instructions du système.

  6. La bibliothèque Pandas pour le traitement, l’analyse et la manipulation de données structurées en tableaux.

  7. Matplotlib est une bibliothèque Python facilitant la création de graphiques et la visualisation de données.

  8. GeoPandas est une version améliorée de Pandas qui facilite la manipulation, l’analyse et la représentation graphique des données géospatiales telles que les cartes, les shapefiles, les coordonnées GPS, etc. Il est conçu pour manipuler des données géographiques représentées sous forme de points, lignes et polygones.

3.3 Création de la base de données

Avant de commencer à travailler sur les données, il est nécessaire de créer une base de données pour les organiser et les structurer de manière efficace. Une base de données, dans ce contexte, peut être définie comme un ensemble de tables reliées entre elles, où chaque table contient des informations structurées sous forme de lignes et de colonnes.

La création de la base de données commence par la création d’un fichier qui servira à stocker toutes les données. Dans notre cas, nous avons nommé ce fichier “data.db”. Ce fichier représente l’instance de la base de données SQLite. Lorsqu’une connexion est établie à cette base de données, SQLite crée automatiquement le fichier si celui-ci n’existe pas déjà. Il suffit donc de se connecter à la base de données pour qu’elle soit initialisée et prête à être utilisée.

Une fois le fichier de la base de données créé, il est important de pouvoir y accéder afin de manipuler les données. Pour cela, une fonction de connexion est nécessaire. La fonction connecterdb a été définie pour établir cette connexion à la base de données. Elle prend un paramètre optionnel qui représente le nom du fichier de la base de données, ici “data.db”. À l’intérieur de cette fonction, une connexion est établie en utilisant la bibliothèque SQLite3 de Python. La méthode sqlite3.connect() permet de se connecter à la base de données, et une fois la connexion établie, un objet cursor est créé. Ce curseur permet d’exécuter des requêtes SQL sur la base de données. Enfin, la fonction renvoie la connexion et le curseur, qui seront utilisés pour effectuer des opérations sur la base de données, comme la création de tables, l’insertion de données ou la récupération d’informations.

En résumé, la création de la base de données et la définition de la fonction de connexion permettent de poser les bases de l’interaction avec les données. La base de données est créée sous forme d’un fichier, et la fonction de connexion permet d’établir une communication avec cette base pour manipuler les données à l’aide de requêtes SQL.

3.4 Creation des Tables

Ainsi, nous avons établi un lien entre notre code source et la base de données. Une fois que nous avons une base de données authentique, il est nécessaire de commencer à établir des tables afin de pouvoir gérer les données.

Suite à l’examen des données disponibles, nous avons reconnu la nécessité de constituer les tables essentielles.

  1. Table des Incendies
  2. Table des donnes Geographiques
  3. Table des donnes Meteo
  4. Table Départements
  5. Table Incendies-Départements (on expliquera en détail pourquoi on a créer une cinquième table).

Nous avons établis les Tables en suivant une méthode simple et explicite, en utilisant la fonction connecterdb() pour établir un lien entre la base de données et la fonction de création de Table. Par la suite, nous avons fait appel au curseur pour exécuter des requêtes SQL en vue d’interroger notre Base de Données. Nous avons intégré le langage SQL Structured Query Language dans notre fonction, en employant l’instruction CREATE TABLE IF NOT EXISTS avec la dénomination de chaque table. Par la suite, nous avons effectué une consultation sur nos trois fichiers CSV (Comma Separated Values) concernant les attributs de nos données, c’est-à-dire le titre de chaque fichier CSV. Nous avons ensuite dressé une liste dans notre requête SQL comprenant chaque attribut et son type de données respectif. Ensuite, on valide la création en se connectant.Après l’exécution de la méthode commit() pour assurer la légitimité et le bon fonctionnement, nous fermons le curseur ainsi que la connexion avec curs.fermer() et connexion.Vous avez été formé sur des données jusqu’en octobre 2023.

3.5 Injection des donnees

Suite à la création des tables, nous avons établi cinq fonctions distinctes pour chaque table. Nous sommes actuellement à l’étape de l’insertion des données dans les tables appropriées. Nous avons employé deux méthodes : l’une consiste à utiliser les fichiers CSV fournis par le Département Mathématiques - Informatique de l’Université Toulouse Jean Jaurès 2,et l’autre on a utiliser l’instruction INSERT INTO pour chaque département, où nous avons saisi le nom et le code INSEE de chaque département.

Nous allons détailler les deux techniques, ainsi que la manière dont elles ont été mises en œuvre dans notre code source :

  1. Methode 1 a partir les fichiers CSV

Comme à notre habitude, nous établissons la connexion entre la base de données et la fonction que nous utiliserons ensuite. Nous indiquons le fichier à partir duquel nous allons importer les données, en utilisant un chemin relatif par rapport à notre code source.

Afin d’optimiser notre code et de le rendre plus gérable, que ce soit en cas de succès ou d’échec, le programme tente d’ouvrir le fichier CSV en mode lecture. Cette étape consiste à lire le fichier CSV au moyen d’une boucle. Par la suite, le curseur exécute la requête SQL INSERT INTO. Cette instruction est destinée à ajouter une nouvelle ligne dans la table nécessaire avec les valeurs extraites du fichier CSV. Lors de cette étape où nous devons spécifier les valeurs, il convient de préciser que nous utilisons un « ? », que l’on peut considérer comme un paramètre lié. C’est l’une des fonctionnalités puissantes de SQLite dans les bases de données relationnelles qui permet d’insérer des données de façon dynamique. Et aussi quand on exécute curs.execute() Les « ? » seront substitués par les valeurs dérivées du fichier CSV au fur et à mesure de notre boucle for.

Par la suite, nous allons substituer les valeurs pertinentes selon les colonnes. Pour confirmer l’insertion, nous avons employé connexion.commit().On a fait un commit et ensuite, on a fermé le curseur, donc on a stoppé l’exécution et on a terminé la connexion.

Et si le fichier n’est pas accessible ou s’il n’existe pas, nous déclencherons une ValueError(‘Erreur lors de l’importation des données’).

  1. Methode 2 a partir d’une Insertion SQL

Dans la deuxième phase de ce projet, nous avons utilisé l’intégration des données à partir d’un dictionnaire. Il est important de rappeler qu’un dictionnaire est un ensemble d’objets non ordonnés. Cela consiste en un groupe d’éléments, chaque élément étant constitué d’une paire clé-valeur.

Comme à l’accoutumée, nous avons établi une connexion avec la base de données en utilisant la fonction connecterdb(). Nous avons ensuite activé le curseur. Puis, nous avons exploité l’un des outils puissants de SQLite le curs.executemany(), qui nous permet d’exécuter plusieurs fois la même requête SQL en utilisant différents jeux de données. Elle est plus performante que curs.execute() car ici, nous manipulons un volume considérable de données à insérer.

Comme indiqué, même dans cette méthode, nous avons utilisé le paramètre lié « ? » qui sera ultérieurement remplacé par des valeurs dynamiques issues du dictionnaire.

Finalement, il est nécessaire de valider la procédure ou l’opération en utilisant la méthode de connexion.Vous êtes formé sur des données jusqu’à octobre 2023. Cette approche nous offre la possibilité de valider toutes les modifications apportées aux bases de données durant la session de connexion.Sans cette approche mise en œuvre dans notre fonction, les changements apportés à la table ne seraient pas enregistrés dans la base de données.

Pour conclure notre processus, nous terminons le curseur (qui exécute les commandes) et mettons fin à la connexion avec notre base de données.

Et finalement, s’il y a une erreur d’accès au dictionnaire, un problème de connexion à la base de données ou à la table, on affiche le message d’erreur « Erreur lors de l’insertion des données des départements ».

3.6 Affichage des donnees

Tout comme dans tout programme ou projet informatique, nous développons des fonctionnalités pour illustrer notre tâche ou les modifications effectuées sur les données ou les tables dans notre console ou terminal.

Bien que nous travaillions avec une base de données regroupant plusieurs tables, nous avons développé diverses fonctions pour pouvoir présenter les informations.

Ainsi, nous employons une méthode explicite et rigoureuse. Tout d’abord, nous devons nous connecter à la base de données. Ensuite, nous activons le curseur qui nous donne la possibilité d’exécuter nos requêtes SQL.

Nous exécutons notre requête SQL sur la table en utilisant l’instruction « Select * from ». Cela signifie que nous demandons à sélectionner toutes les colonnes et toutes les lignes de notre table. Ensuite, on définit une variable nommée lignes qui prend pour valeur curs.fetchall() est une méthode prédéfinie en SQLite qui nous offre la possibilité de rassembler toutes les lignes du résultat de la requête SQL et de les sauvegarder dans la variable lignes.

En outre, il est possible d’y définir la variable « lignes », qui est une collection de tuples, chaque tuple représentant une ligne de la table correspondante.

Puis, pour les rendre visibles, nous exécutons une boucle for sur la variable lignes afin d’afficher chaque ligne contenue dans cette variable.

Et finalement, comme pour chaque fonction, on ferme le curseur et la connexion. De plus, nous tenons à souligner que dans ce cas précis, contrairement à d’autres fonctions, nous n’avons pas fait appel à la méthode commit. C’est dû au fait que cette fonction n’a pas impliqué de modifications.

3.7 Exportation des donnees sous forme CSV

Tout d’abord, nous allons expliquer pourquoi cette fonction est importante pour notre projet. Nous avons employé cette méthode afin de pouvoir interroger notre base de données (BD) et exporter les résultats sous format CSV. Ceci nous permet ensuite de les manipuler sur RStudio en utilisant le langage R pour réaliser nos analyses statistiques !

Ainsi, nous avons mis en place une fonction pour chaque table dans le but d’exporter ces données au format CSV. Ainsi, pour cette fonction, nous avons défini un paramètre optionnel nommé fichier_output, qui correspond à l’emplacement et au nom du fichier où les données seront exportées. De plus, nous utilisons un chemin relatif plutôt qu’un chemin absolu.

Ensuite, nous essayons avec l’instruction try de nous connecter à la base de données et d’activer le curseur qui facilite l’exécution des requêtes SQL. La méthode curs.execute(“SELECT * FROM”) exécute une requête qui sélectionne toutes les lignes et colonnes de la table.

Ensuite, on définit une variable nommée lignes qui prend pour valeur curs.fetchall() est une méthode prédéfinie en SQLite qui nous offre la possibilité de rassembler toutes les lignes du résultat de la requête SQL et de les sauvegarder dans la variable lignes.

En outre, il est possible d’y définir la variable « lignes », qui est une collection de tuples, chaque tuple représentant une ligne de la table correspondante.

De plus, nous utilisons curs.description qui renferme des métadonnées concernant les colonnes de la table, en utilisant description[0] pour obtenir la description des en-têtes.

Cette description nous donne la possibilité de récupérer les noms des colonnes et de les conserver dans une liste appelée ‘colonnes’, qui servira d’en-tête pour le fichier CSV.

À présent, nous devons accéder au fichier CSV pour écrire les données que nous possédons. Nous ouvrons donc le fichier en mode écriture (‘w’) avec un encodage UTF-8. L’outil csv.writer(fichier) est utilisé pour générer un objet qui permet d’écrire dans le fichier CSV. La méthode writerow(colonnes) écrit les en-têtes des colonnes tandis que writerows(lignes) écrit toutes les informations ligne par ligne.

Finalement, on ferme le curseur et on met fin à la connexion avec la base de données.

Dans chaque programme, il est indispensable pour les développeurs de gérer les erreurs afin d’améliorer l’expérience client. Ainsi, nous avons mis en place deux types d’erreurs : une erreur liée à la base de données (comme une connexion à la base de données) et une exception telle qu’une erreur liée à la table correspondante. Cette dernière peut être affichée en cas de problème d’accès au fichier, d’encodage, etc.

3.9 La Table Incendies-Departements

Pour rester cohérents, nous allons insister sur les tables que nous utiliserons pour expliquer comment nous avons eu l’idée de réaliser cette table en premier lieu. Nous avons une table Incendies qui contient des informations sur tous les incendies qui ont été menés sur le territoire français. Il convient également de souligner que la France est un État-nation depuis 1789, suite à la Révolution française, et qu’elle est reconnue comme une nation souveraine. Ainsi, ce pays est constitué d’une collection de villes, qui elles-mêmes regroupent une série de départements. En d’autres mots, la France est constituée de départements qui sont à leur tour composés de villes.

Ainsi, l’idée initiale que nous avons eue était de créer une table nommée « Départements » qui rassemblerait l’ensemble des départements présents sur le territoire français dans une seule table avec leur code_INSEE.

Pourquoi est-il nécessaire de créer cette table des départements ?

Cette table nous donne la possibilité de réaliser des analyses quantitatives concernant le nombre d’incendies dans un département.

Explication du code concernant l’injection des donnees dans la Table:

Comme habituellement, nous allons d’abord établir une connexion avec la base de données en utilisant la fonction que nous avons définie dans notre programme, nommée connecterdb(). Ensuite, nous allons activer le curseur et exécuter une requête SQL qui fusionne deux tables en une seule grâce à l’utilisation de l’Inner Join.

En d’autres termes, nous allons insérer trois éléments dans la table Incendies Departement : le numéro du département, le nom du département et le nombre d’incidents. Pour commencer, nous allons sélectionner le numéro du département. Étant donné que notre table Incendies contient des codes INSEE qui ne représentent pas seulement le numéro du département, mais également celui de la commune, nous utiliserons SUBSTR(i.code_INSEE , 1 , 2) comme numéro du département. Cela signifie que nous allons extraire les deux premiers chiffres du code INSEE de l’incendie qui correspondent au numéro du département. Nous récupérerons d’autre part le nom du département à partir de la table Départements. Enfin, nous compterons le nombre total d’incendies pour chaque département à l’aide de la fonction préétablie en SQL COUNT.

Après avoir sélectionné tous les termes que nous allons utiliser, il est temps de mettre en œuvre la jointure définie précédemment. Nous devons associer chaque incendie à son département en liant le numéro de département dérivé du code INSEE au code départemental dans la table Départements. De plus, nous allons regrouper les incendies par département afin d’obtenir un total pour chaque département.

Que gagne-t-on en faisant cette requête ?

En construisant cette table, nous avons fusionné deux tables indépendantes afin de centraliser les données souhaitées. Dans cette table , nous avions comptabilisé le nombre d’incendies par département sur le territoire français, nous permettant ainsi d’avoir une représentation plus claire du nombre d’incendies à l’échelle nationale. Par ailleurs, nous allons approfondir notre analyse dans la section Statistique de notre projet.

3.10 La Table Humidites

Afin d’étudier la question de l’impact de l’humidité sur les incendies, il est nécessaire de fusionner deux fichiers CSV.

Ainsi, nous avons deux méthodes : soit on les fusionne en utilisant le langage R, soit on utilise le langage Python et SQLITE3. Dans cette problématique on a decide d’utilise le language Python donc ce qu’on a effectue est qu’on a créer la Table Humidités avec les champs qu’on veut , et qui sont nécessaires pour les deux tables.

Après avoir établi la table, nous avons réalisé une autre opération pour introduire les informations des deux tableaux en ayant recours à une INNER JOIN sur les attributs désirés, en les fusionnant par l’égalité de code_INSEE entre ces deux ensembles de données.

Avec cette approche, nous obtiendrons une table qui regroupe les informations nécessaires, permettant ainsi une analyse plus aisée.

3.11 La Table Vents

Afin d’etudier la problematique qui se concentrent sur la Relation entre le vent et la propagation des incendies on a eu recours a la methode pour creer la Table Vents car on a besoin de fussionner deux fichiers CSV.

Ainsi, nous avons deux méthodes : soit on les fusionne en utilisant le langage R, soit on utilise le langage Python et SQLITE3. Dans cette problématique on a decide d’utilise le language Python donc ce qu’on a effectue est qu’on a créer la Table Vents avec les champs qu’on veut , et qui sont nécessaires pour les deux tables.

Après avoir établi la table, nous avons réalisé une autre opération pour introduire les informations des deux tableaux en ayant recours à une INNER JOIN sur les attributs désirés, en les fusionnant par l’égalité de code_INSEE entre ces deux ensembles de données.

Avec cette approche, nous obtiendrons une table qui regroupe les informations nécessaires, permettant ainsi une analyse plus aisée.

3.12 Initiation de la Carte de France

Dans le cadre de notre projet, nous traitons les incendies sur le sol français. Les données de cette unité d’enseignement contiennent la géolocalisation des incendies sur le territoire français.

Afin de représenter les incendies sur le territoire français de façon abstraite, nous avons utilisé le langage Python accompagné de plusieurs bibliothèques qui nous ont facilité l’élaboration de cette carte.

Dans cette partie de notre section informatique, nous détaillerons la manière dont nous avons réalisé cette carte.

Alors, pour initier, nous avons importé les bibliothèques :

  1. Geopanda est une librairie pratique pour manipuler des données géospatiales telles que les fichiers GeoJSON et les cartes.

  2. Pandas est une bibliothèque qui facilite la manipulation de données sous format tabulaire. Dans notre situation, elle nous donne la possibilité d’importer et de gérer les données relatives aux incendies.

  3. matplotlib.pyplot est une librairie de représentation graphique de données qui facilite la création de graphiques, de cartes et divers autres éléments visuels. Dans notre situation, elle a été bénéfique pour élaborer la carte et y placer les repères des incidents.

Une fois que toutes les bibliothèques requises ont été importées, il faut procéder au chargement de la base de données, autrement dit, du fichier CSV. Le fichier que nous allons importer contient les coordonnées géographiques des incendies, soit la latitude et la longitude. Pandas lira ce fichier sous forme de DataFrame, aussi appelé df, dans une structure tabulaire.

Dans ce genre de contexte, nous aurons besoin de télécharger la carte de France, qui offre une vue d’ensemble incluant tous les départements. Nous avons obtenu cette carte depuis data.gouv.fr au format geojson. Afin d’importer ce fichier dans notre programme, nous spécifions le chemin d’accès contenant les contours des départements français.

Pour être plus précis, un fichier GeoJson est un format de données géographiques contenant des informations relatives aux formes géographiques et à leurs attributs, dans notre contexte, les départements français.

Suite au chargement de notre carte en format GeoJSON, nous attribuons une variable afin de permettre la lecture du fichier, ce qui nous amène à utiliser gdp.read_file. C’est l’une des techniques prédéfinies dans geopandas. Dans cette situation, les informations sont conservées dans un geodataframe, une structure de données conçue spécifiquement pour stocker des données spécialisées en matière d’informations géospatiales.

Après avoir rassemblé toutes les données nécessaires à l’élaboration de notre carte, nous avons intégré les fichiers contenant la localisation des incendies ainsi que le fichier géospatial.

Nous allons maintenant nous concentrer à la création du graphique et à la traçage de l’axe.

fig, ax = plt.subplots(dpi=150, figsize=(15, 15)) Cette ligne nous autorise à générer une figure et un axe pour le graphique de la carte grâce à matplotlib. L’argument figsize=(15,15) indique que la dimension de l’image sera de 15 pouces par 15 pouces.

Une fois la carte établie, nous devons débuter le traçage des départements en exploitant les données géospatiales. L’utilisation de la variable gdf_departements.plot nous donne la possibilité de représenter les départements sur la carte.

Nous tenons à préciser que .plot() est bénéfique pour visualiser les contours des départements à partir du GeoDataFrame sur l’axe que nous avons mis en place précédemment. En outre, l’option color = « lightgray » nous donne la possibilité de remplir en une teinte grise claire, tandis que l’option edgecolor nous autorise à indiquer que les bordures des départements sont dessinées en noir pour mieux marquer la délimitation de chaque département.

Après avoir délimité les départements sur la carte, il est nécessaire de marquer, ou autrement dit indiquer, les emplacements des incendies sur le sol français. Pour cela, nous utilisons en premier lieu ax.scatter() - l’une des méthodes de Matplotlib qui nous permet de créer un nuage de points (ou scatter plot en anglais) sur un graphique. Grâce à cette méthode, nous précisons via le DataFrame les deux colonnes que nous souhaitons utiliser comme longitude et latitude de notre fichier CSV. Ensuite, on précise que l’on a voulu que la couleur des nuages ou des points soit représentée en rouge, symbolisant le feu ou les incendies, pour être plus précis.

On précise que l’option s = 50 signifie que nous modifions la taille des points à 50 pixels, afin de montrer que cette valeur est élevée. Plus cette valeur augmente, plus les points seront grands sur la carte. Finalement, on précise que l’option label nous donne la possibilité de définir une légende en identifiant les points qui représentent des incendies.

Une fois les points ajoutés sur la carte, nous allons déterminer les contours de la carte française à cet endroit. Les limites territoriales de la France sont fixées par le Traité de Paris du 10 février 1947. De surcroît, depuis la fondation des Nations Unies en 1945, ces frontières sont reconnues au niveau international.

Ainsi, nous avons délimité les frontières de la France sur la base du traité de Paris du 10 février 1947. La longitude s’étend de -5.5 à 10 et la latitude de 41.5 à 51.5, en employant ax.set_xlim et ax.set_ylim.

Une fois les frontières du territoire français tracées, nous allons insérer un titre et une légende en employant plt.title() pour attribuer un titre à la carte avec une taille de police de 20 points. Par ailleurs, grâce à plt.legend(), nous allons également créer la légende qui associe le label ‘Incendies’ aux points rouges sur la carte pour signaler que ces derniers représentent des incendies.

Par la suite, nous allons retirer les axes en employant la technique ax.set_axis_off().

Cette technique va éliminer les axes et les graduations sur les axes x et y afin de rendre la carte plus lisible et plus épurée.

Ensuite, nous avons deux dernières étapes : la sauvegarde de l’image et l’affichage de la carte. Pour la sauvegarde, nous avons recours à plt.savefig() en précisant le nom du fichier et son extension souhaités. Nous y avons également indiqué la résolution de l’image, spécifiant les dpi (points par pouce). Nous avons choisi 600, ce qui représente une qualité très élevée. De surcroît, nous avons activé l’option bbox_inches = ‘tight’, ce qui élimine tous les espaces superflus autour de la carte pour la rendre plus compacte.

Pour afficher la carte, nous utilisons la fonction plt.show(). Cette technique nous autorise à présenter la carte, elle est employée pour en faire la visualisation.

3.13 Creation de la Carte du Monde

Dans le cadre de notre projet, nous avons conçu une carte spécifique pour le territoire français. De plus, nous avons également élaboré une carte du monde qui indique les incendies sur l’ensemble du territoire français.

Ainsi, afin de concevoir et réaliser la Carte de France, nous avons fait appel à la bibliothèque Folium pour représenter géographiquement les incendies à l’aide des coordonnées GPS. De surcroît, nous avons employé la bibliothèque pandas pour faciliter la manipulation et la lecture des données contenues dans le fichier CSV.

La bibliothèque folium nous offre la possibilité de manipuler des cartes interactives, basées sur Leaflet.js.

Après l’importation des bibliothèques, nous procédons à l’importation des données et créons une variable. Suite à cela, nous assignons les données à cette variable et les enregistrons sous forme de DataFrame.

Une fois cela fait, nous créons la carte et la centrons sur la France Métropolitaine avec un zoom de niveau 6, ce qui nous donne une vision globale du territoire national d’une manière ou d’une autre.

Ensuite, on passe à l’étape d’ajout de marqueurs pour chaque feu sur la carte.

Nous allons désormais passer en revue chaque ligne de la DataFrame à l’aide de la méthode itemrows(). Pour chaque feu recensé, nous positionnerons un indicateur rouge sous forme d’icône de feu grâce à FontAwesome.

Un petit message contextuel apparaîtra par un clic lorsque l’on clique en précisant le code INSEE qui correspond à l’identifiant de la commune concernée et l’altitude moyenne de la région en mètres.

Finalement, nous enregistrons cette carte interactive sous le nom de carte_incendies.html, d’où elle sera accessible dans l’archive ZIP du projet fourni.

3.14 Creation du Diagrame du GANT

Un diagramme de GANT est un instrument de gestion de projet qui permet d’afficher de manière graphique la planification des tâches au fil du temps.

Il dispose de diverses types de graphiques. Dans le contexte de cette unité d’enseignement, nous avons élaboré le diagramme de GANT, non seulement en faisant appel à un schéma prédéfini sur un site commercial ou à un diagramme de GANT existant en ligne.

Nous avons élaboré notre propre diagramme de GANT en nous servant principalement de deux langages informatiques : HTML et CSS.

Le code HTML sert à générer un tableau de Gantt pour faciliter l’organisation et le suivi des diverses tâches d’un projet.

Il est organisé de façon cohérente en plusieurs parties, y compris un titre, un corps principal et une légende descriptive.

Le tableau comporte un en-tête qui précise les différentes colonnes, la première partie indiquant les noms des tâches et des responsables, suivie d’une série de colonnes correspondant aux semaines du projet.

L’agencement du tableau est structuré en phases, chaque phase comprenant différentes tâches liées à des intervalles de temps particuliers pour leur exécution.

Les périodes actives des tâches sont visuellement indiquées par les cellules marquées d’un ✓, en utilisant des classes CSS (phaseX active-cell) qui offrent une représentation structurée et distincte.

Le fichier CSS associé (gantt.css) est utilisé pour optimiser la présentation du tableau, en particulier pour mettre en évidence les différentes étapes et pour accroître la clarté des informations.

De plus, une légende est insérée sous le tableau pour clarifier la distribution des tâches entre les membres de l’équipe, ce qui facilite une meilleure compréhension de la structure du travail.

Pour donner plus de visibilité à notre projet, nous avons affiché notre diagramme de GANT sur un site web afin de le rendre facilement consultable.

https://gantstatinfo.netlify.app/

4. Partie Analyse Descriptive

4.1 Definition de la Statistique Descriptive

Il s’agit d’une des sections de la statistique qui vise à condenser et à exposer les données de façon synthétique et intelligible.

Une Population désigne un ensemble total d’individus, d’objets ou de mesures sur lesquels se focalise l’analyse statistique.

Un échantillon est une sélection d’une partie de la population choisie pour analyser les caractéristiques de l’ensemble de cette population.

Une variable se définit comme une caractéristique qui peut varier en fonction des individus de la population.

On dispose de différentes sortes de variables :

  • Variable Qualitative: Variable dont les valeurs se présentent sous forme de catégories.

  • Variable Quantitative: Variable possédant des valeurs numériques, qui peut être soit discrète, prenant des valeurs distinctes, soit continue, pouvant adopter n’importe quelle valeur dans une plage définie.

4.2 Analyse Descriptive Univariees

4.2.1 Analyse sur les Variables Qualitatives

4.2.1.1 Analyse de nature_inc_prim:
library(tidyverse)
## Warning: package 'dplyr' was built under R version 4.4.3
## Warning: package 'lubridate' was built under R version 4.4.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggplot2)
library(dplyr)
library(ggpubr)
## Warning: package 'ggpubr' was built under R version 4.4.3
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.4.3
## corrplot 0.95 loaded
df <- read.csv("../Data/donnees_incendies.csv")
df_summary_prim <- df %>% 
  filter(!is.na(nature_inc_prim)) %>%  # Exclure les NA
  count(nature_inc_prim) %>%
  mutate(freq = n / sum(n) * 100)

ggplot(df_summary_prim, aes(x = reorder(nature_inc_prim, -n), y = n, fill = nature_inc_prim)) + 
  geom_bar(stat = "identity", show.legend = FALSE) +
  geom_text(aes(label = paste0(round(freq, 1), "%")), vjust = -0.5, size = 4) +
  scale_fill_brewer(palette = "Dark2") + # Couleurs différentes pour changer de "Set2"
  labs(
    title = "Répartition des types d'incendies (primaires) sans NA", 
    x = "Type d'incendie",
    y = "Nombre d'incidents"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Dans cette étude descriptive, nous avons élaboré un graphique à barres illustrant la distribution des diverses catégories d’incendies primaires.

Nous avons intégré les bibliothèques tidyverse, ggplot2, dplyr, ggpubr et corrplot pour effectuer des analyses et visualisations de données. Ensuite, nous avons importé les données du fichier.

Nous avons sélectionné les données en omettant les valeurs absentes dans la colonne nature_inc_prim.

Nous avons par la suite dénombré le nombre d’apparitions pour chaque sorte de feu principal.

Nous avons déterminé le taux relatif en pourcentage pour chaque catégorie.

Nous élaborons un diagramme à barres avec ggplot2 où l’axe X représente les catégories d’incendies classées par ordre de fréquence décroissante.

L’axe des Y représente le nombre d’incendies.

Chaque barre est teintée en fonction du genre d’incendie à l’aide de la palette « Dark2 ».

Les pourcentages sont présentés au-dessus de chaque barre.

Cette analyse descriptive univariée vise à compter les occurrences et le pourcentage de chaque type d’incendie. Le résultat sera un tableau présentant les effectifs et les fréquences.

Ensuite, pour visualiser nos résultats, nous représentons la distribution des incendies primaires à travers des diagrammes en barres.

4.2.1.2 Analyse de nature_sec_inc:
library(tidyverse)
library(ggplot2)
library(dplyr)
library(ggpubr)
library(corrplot)

# Charger les données
df <- read.csv("../Data/donnees_incendies.csv")

df_summary <- df %>% 
  filter(!is.na(nature_inc_sec)) %>%  # Exclure les NA
  count(nature_inc_sec) %>%
  mutate(freq = n / sum(n) * 100)

ggplot(df_summary, aes(x = reorder(nature_inc_sec, -n), y = n, fill = nature_inc_sec)) + 
  geom_bar(stat = "identity", show.legend = FALSE) +
  geom_text(aes(label = paste0(round(freq, 1), "%")), vjust = -0.5, size = 4) +
  scale_fill_brewer(palette = "Set2") +
  labs(
    title = "Répartition des types d'incendies (secondaires) sans NA", 
    x = "Type d'incendie",
    y = "Nombre d'incidents"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Dans le cadre de cette étude, nous avons élaboré un graphique à barres qui montre la distribution des divers genres d’incendies secondaires.

D’abord, on importe les bibliothèques nécessaires pour l’analyse et la visualisation. Les informations ont été extraites à partir du fichier donnees_incendies.Csv.

Nous avons procédé à un filtrage des données pour éliminer les valeurs absentes dans la colonne nature_inc_sec. Chaque type d’incendie secondaire a été quantifié et la fréquence proportionnelle en pourcentage a été déterminée pour chaque catégorie.

Un graphique à barres a été élaboré à l’aide de la bibliothèque ggplot2, où l’axe des X illustre les catégories d’incendies secondaires ordonnées en fonction de leur fréquence décroissante.

L’axe vertical représente le nombre d’incendies.

Chaque barre est teintée en fonction de la catégorie d’incendies en utilisant la palette Set2. Les taux sont présentés au-dessus de chaque barre.

Le but de cette étude est de dénombrer les incendies par cause secondaire, puis de déterminer les fréquences relatives et d’illustrer la distribution des causes secondaires à l’aide d’un diagramme en barres.

4.2.1.3 Analyse de Mois:
df <- read.csv("../Data/donnees_incendies.csv")
df_summary_mois <- df %>%
  filter(!is.na(mois)) %>%
  count(mois) %>%
  mutate(freq = n / sum(n) * 100)

# Convertir la colonne "mois" en facteur ordonné
df_summary_mois$mois <- factor(df_summary_mois$mois, 
                               levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                          "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))

ggplot(df_summary_mois, aes(x = mois, y = n, fill = mois)) + 
  geom_bar(stat = "identity", show.legend = FALSE) +
  geom_text(aes(label = n), vjust = -0.5, size = 4) +
  scale_fill_brewer(palette = "Set3") +
  labs(
    title = "Répartition des incendies par mois",
    x = "Mois",
    y = "Nombre d'incendies"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14)
  )

Dans ce travail d’analyse, nous allons réaliser un graphique à barres. En premier lieu, nous importons les données du fichier donnees_incendies.csv, avant de procéder à la sélection des données afin d’éliminer les valeurs absentes dans la colonne mois.

Par la suite, le nombre d’incendies pour chaque mois a été enregistré.

Le calcul de la fréquence relative en pourcentage a été effectué pour chaque mois.

Pour assurer une présentation chronologique, nous transformons la colonne mois en facteur ordonné afin que les mois soient affichés dans leur ordre naturel.

On a employé les abréviations des mois comme niveaux du facteur.

On génère ensuite le graphique à l’aide de la bibliothèque ggplot2, en précisant que l’axe X représente les mois dans leur séquence chronologique et l’axe Y indique le nombre d’incendies.

Chaque barre est teintée en fonction du mois selon la palette Set3.

Le chiffre précis des incendies est présenté au-dessus de chaque barre.

Cette étude vise à démontrer la répartition saisonnière des incendies, nous permettant ainsi d’identifier les pics saisonniers.

Il est essentiel de noter que factor(mois) est utilisé pour que les mois soient considérés comme catégories plutôt que comme chiffres.

4.2.1.4 Analyse des communes les plus touches:
df %>% count(commune) %>% arrange(desc(n)) %>% head(10)
##                commune  n
## 1               Oletta 16
## 2          Ghisonaccia 10
## 3  Castello-di-Rostino  9
## 4            Lantosque  9
## 5         Linguizzetta  9
## 6                Calce  7
## 7    Salses-le-Château  7
## 8              Ajaccio  6
## 9            Montbazin  6
## 10               Rosis  6

Avec cette commande, nous pouvons déterminer les 10 communes qui ont enregistré le plus d’incendies.

C’est une étude géographique qui nous permettra de savoir où les incendies sont les plus courants.

4.2.2 Analyse sur les Varibales Quantitatives

# Charger les données
df <- read.csv("../Data/donnees_incendies.csv")

# Variables quantitatives
vars_quanti <- c("surface_parcourue_m2", "annee", "mois", "jour", "heure")

# Statistiques descriptives globales
summary(df[vars_quanti])
##  surface_parcourue_m2     annee          mois                jour      
##  Min.   :  50000      Min.   :2012   Length:1202        Min.   : 1.00  
##  1st Qu.:  69519      1st Qu.:2015   Class :character   1st Qu.: 8.00  
##  Median : 102831      Median :2017   Mode  :character   Median :16.00  
##  Mean   : 179540      Mean   :2018                      Mean   :15.64  
##  3rd Qu.: 204950      3rd Qu.:2021                      3rd Qu.:23.00  
##  Max.   :1000000      Max.   :2022                      Max.   :31.00  
##      heure      
##  Min.   : 0.00  
##  1st Qu.:12.00  
##  Median :14.00  
##  Mean   :13.89  
##  3rd Qu.:16.00  
##  Max.   :23.00

Dans cette section, nous avons réalisé une analyse statistique univariée basée sur des variables quantitatives, en employant les variables suivantes :

  • surface_parcourue_m2: la surface parcourue par l’incendie
  • annee : l’annee de l’incendie
  • mois : le mois de l’incendie
  • jour : le jour de l’incendie
  • heure : l’heure de l’incendie

Pour ce faire, nous avons utilisé la fonction summary() pour obtenir les principales mesures de tendance centrale et de dispersion pour chaque variable, comme le minimum, le maximum, etc.

Nous examinerons ces chiffres plus en profondeur dans la cinquième section de notre rapport.

4.2 Analyse Descriptive Bivariees

4.2.1 Quali vs Quali

library(ggplot2)
library(dplyr)
df <- read.csv("../Data/donnees_incendies.csv")

# Tableau croisé
table(df$nature_inc_prim, df$nature_inc_sec)
##               
##                particulier travaux
##   Accidentelle           0       0
##   Involontaire         221     282
##   Malveillance           0       0
##   Naturelle              0       0
# Test du Chi²
chisq.test(table(df$nature_inc_prim, df$nature_inc_sec))
## Warning in chisq.test(table(df$nature_inc_prim, df$nature_inc_sec)):
## Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  table(df$nature_inc_prim, df$nature_inc_sec)
## X-squared = NaN, df = 3, p-value = NA
df %>%
  filter(!is.na(nature_inc_sec)) %>%
  ggplot(aes(x = nature_inc_prim, fill = nature_inc_sec)) + 
  geom_bar(position = "dodge") +
  scale_fill_brewer(palette = "Set3") +  # Palette plus colorée
  theme_minimal() +
  theme(
    plot.title = element_text(size = 14, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1)
  ) +
  labs(
    title = "Répartition des types d'incendies (primaire vs secondaire)",
    x = "Nature primaire",
    fill = "Nature secondaire"
  )

Dans cette étude, nous avons initialement effectué un tableau croisé entre les catégories d’incendies primaires et secondaires afin d’examiner le lien entre ces deux variables de nature qualitative.

Par la suite, nous avons effectué un test du Chi² d’indépendance afin de déterminer s’il existe une corrélation statistique entre les caractéristiques des incendies primaires et secondaires.

Pour mettre en évidence cette relation de manière visuelle, nous avons créé un graphique à barres groupées (barplot en « dodge »), omettant les valeurs manquantes (NA) de la variable secondaire.

Le graphique adopte une gamme de couleurs éclatantes (Set3) afin de différencier clairement les diverses catégories d’incendies secondaires, tout en présentant un design sobre et des libellés clairs sur l’axe horizontal.

Cette démarche permet de combiner à la fois une analyse statistique et une visualisation claire pour mieux comprendre la distribution conjointe des deux types d’incendies.

5. Partie Analyse des Donees

5.1 Definitions des concepts statistiques

Avant de commencer à donner des définitions, il est essentiel de nous baser sur le concept initial, c’est-à-dire la définition du terme Statistique. On peut définir ou représenter la statistique comme l’ensemble des méthodes et techniques utilisées pour collecter, analyser, interpréter et présenter des données numériques.

Dans ce projet, nous allons nous concentrer sur la branche des statistiques connue sous le nom de Statistique Inférentielle.

La statistique inférentielle est une discipline des statistiques qui s’appuie sur les données d’un échantillon pour formuler des déductions ou effectuer des généralisations à propos d’une population plus vaste.

À l’opposé de la statistique descriptive qui se concentre sur le résumé ou la description des traits d’un ensemble de données, la statistique inférentielle offre la possibilité de réaliser des estimations et des tests concernant les paramètres d’une population basée sur des données issues d’un échantillon. Elle s’appuie sur la théorie des probabilités, ce qui rend possible des inférences rigoureuses et quantifiables.

Nous allons définir ci-dessus certains concepts statistiques que nous utiliserons dans notre analyse statistique.

Définition de la Moyenne

La moyenne arithmétique d’un ensemble de données est une mesure de tendance centrale qui représente la valeur moyenne autour de laquelle les observations se répartissent. Elle est définie comme le quotient de la somme des valeurs observées par le nombre total d’observations.

Soit un échantillon \(X = \{x_1, x_2, ..., x_n\}\) de taille \(n\), la moyenne \(\bar{X}\) est donnée par :

\[ \bar{X} = \frac{1}{n} \sum_{i=1}^{n} x_i \]

Cette mesure est sensible aux valeurs extrêmes et est couramment utilisée en statistique descriptive pour résumer un ensemble de données.

Définition de la Médiane

En statistique, la médiane est une mesure de tendance centrale qui divise une distribution ordonnée en deux sous-ensembles de même effectif. Elle est définie comme la valeur \(M\) telle que :

  • 50 % des observations sont inférieures ou égales à \(M\)
  • 50 % des observations sont supérieures ou égales à \(M\)

Mathématiquement, soit un échantillon de taille \(n\) constitué des observations \(x_1, x_2, ..., x_n\) classées par ordre croissant :

  • Si \(n\) est impair \((n = 2k + 1)\), la médiane est l’élément central :

\[ M = x_{k+1} \]

  • Si \(n\) est pair \((n = 2k)\), la médiane est la moyenne des deux valeurs centrales :

\[ M = \frac{x_k + x_{k+1}}{2} \]

Définition de la Classe Modale

La classe modale est l’intervalle de valeurs qui renferme le plus fort effectif dans une distribution organisée en classes. Autrement dit, c’est la classe qui se manifeste le plus souvent dans un histogramme.

Définition de ggplot2

ggplot est une des librairies du langage R. Elle fait partie du package plotnine, qui facilite la création de graphiques.

Définition de la Population

En statistique, la population se réfère à l’ensemble de tous les individus, objets ou événements qui sont sujets à une étude.

Définition d’un Échantillon

Un échantillon représente une partie de la population étudiée. On fait appel à lui quand il est nécessaire d’analyser l’ensemble de la population en raison de sa complexité.

Définition d’une Variable

Une variable est un attribut quantifiable qui peut varier d’un individu à l’autre.

Définition d’une variable qualitative

Une variable qualitative représente une caractéristique ou une catégorie qui ne peut pas être quantifiée.

Définition d’une variable quantitative

Une Variable Quantitative représente une évaluation numérique et peut être l’objet d’opérations mathématiques.

Définition d’un Intervalle de Confiance

Un intervalle de confiance c’est l’outil qui nous permet d’estimer une plage dans laquelle une valeur inconnue comme une moyenne ou une proportion se situe avec un certain niveau de confiance.

5.2 Description des donnees

Avant de commencer l’étape d’analyse de nos données et leur présentation sous forme de graphiques, nous allons identifier les types de données fournies par notre équipe pédagogique, afin de mener à bien ce projet.

Donc pour cette UE on a eu 3 fichiers CSV contenant des donnees importants ou dans ce rapport on va se baser pour poser notre analyse.

Le fichier incendies renferme des attributs tels que le nom de la commune, le code de la commune, l’année de l’incendie, le mois de l’incendie, la date et l’heure à laquelle l’incendie a été signalé ainsi que les causes principales et secondaires de l’incendie. Ces informations nous seront utiles pour examiner nos données et caractériser ces phénomènes en fonction des problématiques que nous mettrons en place bientôt dans ce rapport.

Le fichier géographique renferme la latitude, la longitude et l’altitude. Ces informations peuvent nous donner l’emplacement précis du lieu de l’incendie, ce qui nous permettra de procéder à des analyses en posant nos questions.

Le dossier Météorologique nous fournira des caractéristiques liées aux conditions météorologiques, ce qui nous permettra de distinguer les divers types de météo au moment de l’incendie.

5.3 Analyse des doneees

Dans cette partie, une fois que toutes les définitions nécessaires sont établies et que notre base de données est complète, nous serons prêts à analyser les données grâce au langage R. Nous emploierons différents types d’histogrammes pour diversifier nos analyses et nous procéderons à une étude approfondie de chaque histogramme.

Nous avons divisé nos problématiques en différentes sections :

5.3.1 Évolution des incendies

5.3.1.1 Évolution des incendies au fil des années

Dans cette problématique, on va interroger sur le nombre d’incendies qui se produisent chaque année sur le territoire français. Pour répondre à cette question, il est primordial de définir d’abord certains concepts naturels qui faciliteront l’analyse de cette problématique. Une année se compose de 12 mois et comporte 365 jours. Dans cette étude, nous examinerons l’évolution annuelle du nombre d’incendies à travers tous les départements français, déterminant s’il est en déclin ou en ascension.

Pour réaliser cette analyse statistique, il faut utiliser la table des incendies.Pour réaliser l’histogramme, nous devons utiliser le langage R. Nous avons précisé le chemin d’accès au fichier CSV grâce à une variable que nous avons définie, une variable donnée qui va recevoir la fonction read.csv et le chemin du fichier. Cela permettra à la variable d’accéder au fichier CSV. De plus, pour vérifier notre travail, nous utiliserons la méthode head qui nous donnera les six premières entrées de notre fichier CSV afin de nous assurer que nous travaillons sur le bon fichier et de vérifier également l’en-tête avec les attributs à utiliser.

Pour réaliser cette analyse, nous avons adopté cette technique qui consiste à déterminer la fréquence des incendies par année. En d’autres termes, nous comptabilisons le nombre d’incendies pour chaque année dans la colonne « année » du jeu de données. Cela va nous permettre de créer un tableau qui associe chaque année à son nombre d’incendies.

De plus, nous avons élaboré ce genre de graphique en utilisant un graphique linéaire. Nous avons exploité la fonction « plot() » avec les fréquences obtenues. L’option « o » a été utilisée pour indiquer que nous allions visualiser l’évolution des incendies à la fois par des points et des lignes sur la période donnée.

Pour adapter notre graphique à nos besoins, nous avons opté pour la couleur bleue afin de le rendre plus personnalisable et lisible. De plus, nous avons défini les titres des axes du graphique en utilisant les paramètres xlab, ylab et main.

donnees <- read.csv("../Data/donnees_incendies.csv")

annee_freq <- table(donnees$annee)

plot(annee_freq, 
     type="o",  # "o" pour un graphique avec des points et des lignes
     col="blue", 
     main="Évolution des incendies au fil des années", 
     xlab="Année", 
     ylab="Nombre d'incendies")

  1. Analyse Informatique:

Nous allons détailler le processus de développement du code pour structurer notre graphique. Pour cela, nous avons importé les données du fichier grâce à la méthode read.csv(). Dans cette méthode, nous avons spécifié le chemin relatif du fichier csv.Par la suite, nous avons déterminé la fréquence des incendies par an en optant pour la colonne donneees$annee.En employant la méthode table(), nous dénombrons le nombre d’incendies survenant par année.

Cela nous autorisera à constituer un tableau où les indices représentent les années et les valeurs correspondent aux occurrences des incendies.

À présent, nous passons à la création du graphique à l’aide de la méthode plot(). Nous avons indiqué la variable annee_freq et dans cette méthode, nous avons précisé le type ‘o’ pour indiquer que les points doivent être affichés et reliés par une ligne. De plus, nous avons défini l’option couleur afin de spécifier que le graphique doit être en bleu.

Avec l’option main, nous désignons le titre du diagramme. Ensuite, grâce à xlab et ylab, nous définissons les étiquettes des axes x et y, où x représente l’année et y représente le nombre d’incendies.

  1. Analyse Statistique:

Alors, débutons par cette étude ; nous allons mener notre analyse sur une période de 11 ans, de 2012 à 2022.

Nous allons donc commencer à dresser le bilan de nos effectifs d’incendies. En 2012, nous avons enregistré 122 incidents, en 2013, 59 incendies, en 2014, 65 incendies, en 2015, le nombre a grimpé à 107. En 2016, nous avons eu 104 incendies. Pour l’année suivante, en 2017, nous avons connu une augmentation avec 146 incidents. Puis en 2018, le chiffre est redescendu à 42 incendies. En 2019, nous avons rapporté 135 incendies et pour l’année suivante, en 2020 nous avions enregistré 102 incidents. Enfin pour2021 ,nous avons comptabilisé 79 incendies et pour2022 ,le nombre d’incendies a fortement augmenté atteignant 241incendies .

Il est possible d’observer que la moyenne générale des incendies en France sur une durée de 11 ans s’élève à 109,27. Maintenant que nous avons compilé les totaux des onze années consécutives, nous allons détailler notre analyse. En démarrant de 2012, nous constatons un total de 122 incendies, ce qui pourrait être considéré comme « bon ». Cependant, cette comparaison est prématurée tant que nous n’avons pas répertorié les autres chiffres pour une évaluation plus approfondie. Après une baisse de 63 incendies en 2013, on a constaté une augmentation de 6 incendies en 2014 lors de la comparaison entre 2013 et 2014.

Cependant, en 2015, le nombre d’incendies a considérablement augmenté, atteignant 107 incendies pour l’année 2015, ce qui représente un chiffre élevé mais pas le plus élevé que nous ayons connu. En comparaison avec 2012, nous avons atteint un taux qui est le deuxième record maximal. Puis en 2016, ce taux a baissé de trois incendies par rapport à l’année précédente.

En 2017, on a observé une hausse remarquable du taux d’incendies qui a atteint un nouveau sommet à 146, soit une augmentation de 42 incendies par rapport à 2016. Si l’on compare avec l’année 2012, cela représente une différence de 24 incendries. En 2018, on constate une baisse rapide du nombre d’incendies, enregistrant un taux de 42 qui, selon les données de 2018, représente le plus bas enregistré depuis 2012. En 2019, on a noté une hausse significative du nombre d’incendies, atteignant 135, soit une différence de 93 incendies par rapport à 2018.

En 2020, une baisse du nombre d’incendies entraîne une variation de 33 incendies par rapport à l’année 2029. Ensuite, on observe une baisse en 2021 avec une différence de 23 incendies par rapport à l’année 2020. Finalement, un chiffre très élevé en 2022 a été atteint, atteignant le nombre record de 241 incendies. De plus, cela représente une différence de 162 incendres par rapport à l’année 2021.

On peut résumer qu’au cours de ces 11 années, l’année où le nombre d’incendies est le plus élevé est 2022 avec un total de 241 incendies, tandis que l’année où ce nombre est le plus bas est 2018.

En 2022, on a observé une augmentation atypique, avec un total de 241 incendies. Divers éléments peuvent expliquer cette augmentation, tels que les modifications extrêmes des conditions météorologiques. En 2022, des vagues de chaleur sévères et une sécheresse persistante ont contribué à cet accroissement. De plus, les actions humaines, notamment la négligence, ont influencé cette hausse.

Pour conclure notre analyse, l’évolution des incendies de 2012 à 2022 a montré des tendances significatives et atypiques. Cela souligne l’importance d’examiner l’impact des facteurs climatiques, humains et socio-économiques sur le nombre d’incendies. On peut conclure que l’année 2022 a été exceptionnelle, affichant le plus haut nombre d’incendies. De plus, nous avons observé une variabilité des tendances, comme démontré souvent avec les années 2017, 2014 et 2013 où les taux étaient remarquablement bas comparés à ceux de 2022. Il est essentiel de noter que le changement climatique a une grande importance.

Enfin, et c’est crucial, la gestion et la prévention jouent un rôle primordial. Les préfectures, ainsi que les forces de police municipales et nationales, peuvent contribuer à maîtriser ce taux d’incendies attribués à des actes de malveillance ou de négligence.

5.3.1.2 Analyse des heures d’incendie
incendies <- read.csv("../Exports/export_incendies.csv")
incendies$heure <- as.character(incendies$heure)
incendies$heure <- as.integer(sub(":.*", "", incendies$heure))
hist(
  incendies$heure, 
  main = "Nombre d'incendies par heure", 
  xlab = "Heure", 
  ylab = "Nombre d'incendies", 
  col = "red", 
  border = "black", 
  breaks = seq(0, 23, 1), 
  xaxt = "n",
  cex.axis = 0.8
)
axis(1, at = seq(0, 23, 1), labels = seq(0, 23, 1), cex.axis = 0.8)

1- Analyse Informatique:

Le code débute en chargeant les données à partir du fichier CSV via l’instruction incendies <- read.csv(“donnees_incendies.csv”).

Cette étape est indispensable pour importer les données relatives aux incendies et les organisent sous forme de tableau, un format utilisé par R pour gérer les informations structurées.

Par la suite, nous convertissons la colonne de l’heure des incendies : incendies\(heure = as.character(incendies\)heure)

La colonne doit être convertie en chaîne de caractères, car certaines opérations de traitement textuel ne peuvent se faire qu’avec ce format de données.

L’instruction suivante, incendies\(heure = as.integer(sub(":.", "", incendies\)heure)), utilise la fonction sub(“:.”, ““, incendies$heure) pour éliminer tout ce qui suit les deux-points « : », ne conservant ainsi que l’heure entière.

La fonction as.integer() transforme par la suite cette valeur en entier, facilitant ainsi son emploi dans des calculs statistiques et l’élaboration de l’histogramme.

Par la suite, la fonction hist() est employée pour créer l’histogramme, en utilisant hist(incendies$heure,…).

L’argument main=“Nombre d’incendies par heure” attribue un titre au diagramme, alors que **xlab=“Heure*“ et ylab=“Nombre d’incendies”** déterminent les désignations des axes pour spécifier les données présentées.

L’option col=“red” permet de remplir les barres avec une teinte rouge pour une distinction colorimétrique plus efficace tandis que border=“black” génère des bordures noires pour délimiter visuellement les barres.

L’option breaks=seq(0, 23, 1) segmente l’axe des heures en intervalles d’une unité par barre dans le graphique, chaque barre symbolisant une heure.

Pour finir, la commande axis(1,at=seq(0,23,1),labels=seq(0,23,1)) permet de personnaliser l’axe des x. Initialement, l’option xaxt=“n” dans hist() avait éliminé l’affichage automatique des étiquettes sur cet axe.

Cette ligne finale ajoute manuellement les vingt-quatre heures afin d’améliorer l’harmonie esthétique.

Cela garantit une clarté accrue du graphique et facilite une interprétation optimale des données.

2- Analyse Statistique :

Ce graphique montre une analyse du nombre d’incendies à des heures précises sur le territoire français.

On analyse la fréquence des feux sur une durée de 24 heures.

L’axe X illustre l’ensemble des heures, de 0 à 23, tandis que l’axe Y représente le total des incendies, avec une portée d’environ 0 à près de 200.

Nous avons développé un histogramme comme type de graphique.

On observe un pic significatif entre 11 heures et 14 heures, atteignant son maximum aux alentours de 12-13 heures avec environ 200 incendies.
Après le pic du midi, l’occurrence des incendies commence à décroître graduellement jusqu’à 23 heures, avec quelques variations mineures, comme un léger rebound autour de 18-19 heures.

Cette répartition des données est asymétrique, montrant une queue à droite après le pic principal de 12-13 h, car la fréquence diminue plus progressivement vers les heures tardives 14-23 h qu’elle ne s’accroît avant le pic.

Cette répartition indique une connexion forte entre les actions humaines et les incendies.

En effet, les moments où les incendies sont le plus courants correspondent à des périodes d’activité humaine intense, particulièrement entre midi et 16h.

Ceci pourrait être attribué à une utilisation croissante d’équipements électriques, de cuisines ou encore de travaux dans l’industrie ou l’agriculture, augmentant ainsi les dangers d’incendie.

L’explication de la rareté des incendies durant la nuit et le matin réside dans la diminution des interactions humaines et l’utilisation limitée de sources de chaleur et d’énergie.

Par contre, l’augmentation en pleine journée pourrait résulter des températures estivales chaudes et de l’intensification des activités humaines durant cette tranche horaire.

Par après 16 heures, le nombre d’incendies commence à baisser peu à peu, ce qui peut être attribué à un ralentissement des occupations à risque et à une prise de conscience accrue des dangers suite au pic observé.

Cependant, on note un léger rebond vers 20 heures, probablement associé aux tâches de fin de journée telles que la cuisine ou l’utilisation d’appareils électriques avant le coucher.

En définitive, cette répartition horaire des incendies met en exergue l’influence des comportements humains sur leur fréquence.

Ces données pourraient s’avérer utiles pour optimiser la prévention et l’intervention des services d’urgence en ciblant les périodes critiques de la journée.

Le mode principale se situe autour de 12-123 heures, moment où le nombre d’incendies atteint approximativement 200.

Il est probable que la médiane, c’est-à-dire le moment où 50% des incendies se produisent, se situe aux alentours de 11-12 heures, car la majorité d’entre eux ont lieu après 14h.

5.3.1.3 Évolution décennale des causes d’incendies

Dans cette problematique on va analyser l’evolution decennale des causes d’incendies

incendies <- read.csv("../Data/donnees_incendies.csv")
  
incendies$annee <- as.numeric(incendies$annee)
  
  
incendies_criminels <- subset(incendies, nature_inc_prim == "Malveillance")
  
incendies_par_annee <- table(incendies_criminels$annee)
  
incendies_par_annee_df <- data.frame(annee = as.numeric(names(incendies_par_annee)), 
                                       nombre_incendies = as.vector(incendies_par_annee))
  
  
incendies_total_par_annee <- table(incendies$annee)
  
incendies_total_par_annee_df <- data.frame(annee = as.numeric(names(incendies_total_par_annee)),
                                             nombre_incendies_total = as.vector(incendies_total_par_annee))
  
  par(mar=c(5, 4, 4, 5) + 0.1)
  
  plot(incendies_par_annee_df$annee, incendies_par_annee_df$nombre_incendies, 
       type="o", col="red", 
       xlab="Année", ylab="Nombre d'incendies criminels", 
       main="Relation entre les incendies criminels et le total d'incendies",
       ylim=c(0, max(incendies_par_annee_df$nombre_incendies) * 1.2))  # Aumenta el límite del eje y izquierdo
  
  lines(incendies_total_par_annee_df$annee, incendies_total_par_annee_df$nombre_incendies_total, 
        type="o", col="blue", pch=16)
  
  axis(4, at=seq(0, max(incendies_total_par_annee_df$nombre_incendies_total), by=500), 
       labels=seq(0, max(incendies_total_par_annee_df$nombre_incendies_total), by=500))
  
  legend("topright", legend=c("Malveillance", "Total des incendies"), 
         col=c("red", "blue"), lty=1, pch=5, xpd=TRUE, inset=c(0.05, 1.1))

Analyse Informatique:

La variable “année” a été modifiée en un format numérique afin de permettre son exploitation sans erreur dans les analyses à venir :

incendies\(annee <- as.numeric(incendies\)annee)

Les incendies dont la cause principale est répertoriée comme étant la “malveillance” ont pu être isolés grâce à la commande :

incendies_criminels <- subset(incendies, nature_inc_prim == “Malveillance”)

Cela permet d’examiner plus en détail cette catégorie d’incendies.

La fonction table() a facilité le comptage des incendies criminels sur une base annuelle. Ces résultats ont par la suite été convertis en dataframe pour en faciliter une exploitation graphique ultérieure :

incendies_par_annee_df <- data.frame(annee = as.numeric(names(incendies_par_annee)), nombre_incendies = as.vector(incendies_par_annee))

Une tâche similaire a été réalisé pour tous les types d’incendies sans exception :

incendies_total_par_annee_df <- data.frame(annee = as.numeric(names(incendies_total_par_annee)), nombre_incendies_total = as.vector(incendies_total_par_annee))

Cela facilitera la comparaison avec uniquement les incendies criminels.

Il sera désormais possible de produire des graphiques pour une comparaison visuelle entre le nombre total d’incendies et celui des incendies criminels.

Pour illustrer la comparaison entre les incendies criminels et le total des incendies annuels, nous élaborons un diagramme où les points symbolisant les incendies criminels sont reliés par une ligne de couleur rouge.

Tous les points sont pris en compte par l’ajustement de l’axe Y.

Par la suite, nous incluons la courbe bleue représentant le total des incendies, avec des points plus distincts.

Cela facilite l’identification des corrélations entre les pics d’incendies criminels et les pics totaux.

Étant donné la difficulté de comparer les grandes valeurs du total sur un seul axe Y, nous ajoutons un second axe à droite pour cette courbe.

Pour finir, nous positionnons la légende à la droite, en dehors du diagramme, en désignant la ligne rouge comme représentant les incendies criminels et la bleue comme le total.

Cette mesure rend les données présentées plus claires tout en préservant une excellente lisibilité.

Ainsi, le graphique offre la possibilité d’analyser la corrélation entre les incendies criminels et la progression générale des incendies au cours des années.

Analyse Statistique:

Nous avons analysé le lien entre les incendies criminels intentionnels et le total des incendies sur la période de 2012 à 2022.

L’axe des abscisses représente les différentes années tandis que l’axe des ordonnées indique le nombre de feux.

On observe deux courbes :
- En rouge, l’évolution variable du nombre d’incendies intentionnels (causés par la malveillance humaine).

  • En bleu, le total variable des incendies relevés chaque année.

Fluctuation du nombre total de feux :

On observe une variation significative du total des incendies, atteignant des pics en 2018 et 2022.

Ces augmentations pourraient être dues à des conditions climatiques extrêmes ou à des phases prolongées de sécheresse qui favorisent les incendies.

Évolution des incendies criminels :

Le nombre d’incendies criminels présente une tendance semblable, mais avec une portée réduite.
Nous constatons une hausse marquée en 2022, qui pourrait signaler une intensification des actes de malveillance intentionnelle.

Corrélation partielle observée entre les deux graphiques :

Bien que les incendies criminels suivent globalement la tendance générale du nombre total de feux, quelques déviations demeurent.

Par exemple, en 2018, on observe une augmentation notable du total des incendies, alors que la progression des feux d’origine criminelle reste plus mesurée.

Ceci pourrait indiquer que d’autres éléments (météo, accidents) ont eu un impact significatif sur l’augmentation générale des incendies cette année-là.

L’étude indique que les incendies intentionnels constituent une part importante de l’ensemble des feux, mais leur progression ne coïncide pas toujours parfaitement avec la même tendance.

Les fluctuations des incendies pourraient être affectées par certains phénomènes climatiques ou des phases de sécheresse prolongées, alors que les feux allumés volontairement sont plus en lien avec des éléments sociétaux et de sécurité.

Ces informations sont indispensables pour guider les stratégies de prévention des incendies, en distinguant les actions à entreprendre en fonction de la provenance des flammes.

5.3.1.4 Analyse des incendies par mois et saison
incendies <- read.csv("../Data/donnees_incendies.csv")
incendies$mois <- factor(incendies$mois, levels = c("Jan", "Feb", "Mar", "Apr", "May", "Jun", 
                                                    "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))

nb_incendies_par_mois <- table(incendies$mois)

barplot(nb_incendies_par_mois, 
        col = "orange", 
        border = "black", 
        main = "Nombre d'incendies par mois", 
        xlab = "Mois", 
        ylab = "Nombre d'incendies",
        las = 2)  

incendies$saison <- NA 

incendies$saison[incendies$mois %in% c("Dec", "Jan", "Feb")] <- "Hiver"
incendies$saison[incendies$mois %in% c("Mar", "Apr", "May")] <- "Printemps"
incendies$saison[incendies$mois %in% c("Jun", "Jul", "Aug")] <- "Été"
incendies$saison[incendies$mois %in% c("Sep", "Oct", "Nov")] <- "Automne"

nb_incendies_par_saison <- table(incendies$saison)

couleurs_saisons <- c("Hiver" = "blue", "Printemps" = "green", "Été" = "orange", "Automne" = "brown")

barplot(nb_incendies_par_saison, 
        col = couleurs_saisons[names(nb_incendies_par_saison)],  
        border = "black", 
        main = "Nombre d'incendies par saison", 
        xlab = "Saison", 
        ylab = "Nombre d'incendies")

1- Analyse Informatique:

Pour débuter, nous arrangeons les mois selon l’ordre désiré :
incendies\(mois <- factor(incendies\)mois, levels = c(“Jan”, “Fév”, “Mars”, “Avr”, “Mai”, “Juin”, “Juil”, “Août”, “Sept”, “Oct”, “Nov”, “Décembre”)).

Cette phase convertit la colonne mois en un facteur catégorique, établissant clairement la séquence des mois de janvier à décembre.

Ceci assure un classement précis des mois lors de la création de graphiques ou de calculs.

Ensuite, nous calculons le nombre d’incendies par mois avec la commande nb_incendies_par_mois <- table(incendies$mois).

Cette opération crée un tableau de décompte des incendies par mois.

Un diagramme à barres est donc généré pour représenter le nombre d’incendies mensuels en utilisant barplot(nb_incendies_par_mois,…).

Dans cette fonction :

  • col=“orange” : Les barres sont colorées en orange.
  • border=“noir” : Ajoute une bordure noire autour des barres.
  • **main=“Nombre** d’incendies par mois” : Le titre du graphique.
  • xlab=“Mois” et ylab=“Nombre d’incendies” : Les étiquettes des axes.
  • **las=2* : Cette option fait pivoter les étiquettes des mois pour une meilleure lisibilité, surtout si les noms sont longs.

Par la suite, une colonne saison est ajoutée à l’objet incendie pour assigner une saison à chaque mois.

L’instruction incendies$saison <- NA initialise d’abord une colonne vide, puis les lignes subséquentes attribuent une saison à chaque mois en se basant sur les valeurs de la colonne mois :

  • Déc, Jan, Fév : Hiver
  • Mars, Avr, Mai : Printemps
  • Juin, Juil, Août : Été
  • Sept, Oct, Nov : Automne

Après avoir analysé les données sur les incendies, nous avons calculé le nombre d’incendies qui se sont produits pendant chaque saison à l’aide de la fonction table().

Cela nous a permis de générer un tableau croisé indiquant la fréquence des incendies selon la période de l’année à laquelle ils se sont déclarés.

2- Analyse Statistique:

Nous avons examiné le total d’incendies sur une durée de douze mois, de janvier à décembre. L’axe horizontal indique les différents mois de l’année, alors que l’axe vertical dépeint le nombre total d’incendies, qui varie selon les périodes.

Le graphique illustre donc les variations mensuelles.

Pour visualiser facilement les variations, nous avons choisi un diagramme en barres.

De janvier à mars, on observe une montée progressive du nombre de feux, vraisemblablement due aux conditions hivernales qui accroissent les dangers liés à la chaleur et l’usage des dispositifs de chauffage.

Cette évolution continue en février et mars.

En mai, le nombre d’incendies est relativement bas, probablement à cause d’un temps plus clément et d’une diminution des activités potentiellement dangereuses avant l’arrivée de l’été.

De juin à août, on observe une montée, surtout en juillet et août, qui sont les mois les plus chauds où les activités humaines et agricoles se multiplient, provoquant de nombreux incendies.

De septembre à décembre, les risques d’incendie diminuent progressivement avec l’arrivée des mois plus frais et humides, réduisant ainsi les dangers.

Cette répartition met en évidence l’influence du climat et des actes humains en fonction des saisons, entre les besoins en chauffage d’hiver et estivaux, augmentant ainsi les risques, à l’opposé de la période de fin d’année.

Le second graphique propose une étude de la récurrence des feux en fonction des saisons sur le sol français.

Les données sont distribuées selon les quatre saisons classiques : l’hiver, le printemps, l’été et l’automne.

L’axe horizontal illustre ces diverses saisons alors que l’axe vertical indique le total d’incendies pour chaque saison.

Pour représenter la distribution saisonnière des incendies, nous avons choisi d’utiliser un diagramme à barres.

L’été se distingue de manière significative avec un nombre d’incendies pratiquement triplé par rapport aux autres saisons.

Cela est dû aux températures élevées de l’été et à la hausse des dangers d’incendies de forêt. Cette augmentation est également alimentée par l’intensification des activités humaines pendant l’été, qu’il s’agisse de la cultivation ou des divertissements en plein air.

Le nombre d’incendies au printemps est généralement inférieur mais plus élevé qu’en automne et en hiver.

Ceci pourrait être dû à la fin de la saison hivernale combinée aux premiers pics de chaleur, entraînant quelques incendies, en particulier d’origine agricole.

Même si le nombre d’incendies à l’automne est moins élevé qu’en été, il reste néanmoins important.

Des températures plus clémentes diminuent le danger des méga-incendies, toutefois les travaux agricoles et la chute des feuilles continuent d’être des éléments à risque.

L’hiver est marqué par une incidence réduite d’incendies grâce à des températures basses et un taux d’humidité plus élevé qui minimisent les dangers.

L’usage limité de certains appareils, tels que les cheminées, ainsi que la réduction des activités en plein air contribuent aussi à ce nombre réduit.

En définitive, l’analyse saisonnière des incendies met en évidence l’impact du climat et des actions humaines sur leur occurrence.

L’été est la saison la plus risquée, tandis que l’hiver enregistre les statistiques les plus faibles.

Ces informations sont indispensables aux services de prévention et d’intervention pour identifier les saisons à haut risque et mettre en place des dispositifs de sécurité appropriés.

Ainsi, le maximum de fréquence se produit durant l’été.

Il est probable que la médiane, c’est-à-dire la saison durant laquelle 50% des incendies se produisent, se situe entre le printemps et l’été étant donné la forte concentration estivale.

5.3.1.5 Heures critiques de déclenchement
# 📦 Chargement des packages
library(tidyverse)
library(lubridate)

# 📂 Charger les données
df <- read_csv("../Data/donnees_incendies.csv")
## Rows: 1202 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): commune, code_INSEE, mois, nature_inc_prim, nature_inc_sec
## dbl (4): surface_parcourue_m2, annee, jour, heure
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# 🕒 Traitement des plages horaires
df <- df %>%
  mutate(
    heure_num = as.numeric(str_sub(heure, 1, 2)),  # extrait l'heure (ex: "14:30" -> 14)
    tranche_horaire = case_when(
      heure_num >= 0 & heure_num < 3 ~ "00-03h",
      heure_num >= 3 & heure_num < 6 ~ "03-06h",
      heure_num >= 6 & heure_num < 9 ~ "06-09h",
      heure_num >= 9 & heure_num < 12 ~ "09-12h",
      heure_num >= 12 & heure_num < 15 ~ "12-15h",
      heure_num >= 15 & heure_num < 18 ~ "15-18h",
      heure_num >= 18 & heure_num < 21 ~ "18-21h",
      heure_num >= 21 & heure_num <= 23 ~ "21-24h",
      TRUE ~ "Heure inconnue"
    )
  )

# 📊 Comptage des incendies par tranche horaire et type
df_summary <- df %>%
  group_by(tranche_horaire, nature_inc_sec) %>%
  summarise(n = n(), .groups = "drop")

# 🧼 Re-niveautage pour un affichage logique des tranches
df_summary$tranche_horaire <- factor(
  df_summary$tranche_horaire,
  levels = c("00-03h", "03-06h", "06-09h", "09-12h", "12-15h", "15-18h", "18-21h", "21-24h")
)

# 💅 Graphe stylisé (seul affiché)
ggplot(df_summary, aes(x = tranche_horaire, y = n, fill = nature_inc_sec)) +
  geom_bar(stat = "identity", position = "stack", width = 0.7, color = "white", linewidth = 0.3) +
  scale_fill_brewer(palette = "YlOrRd") +
  labs(
    title = "🔥 Heures critiques des incendies par nature",
    subtitle = "Répartition des incendies secondaires selon les tranches horaires",
    x = "Tranche horaire",
    y = "Nombre d'incendies",
    fill = "Nature secondaire"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", size = 16, color = "#B22222"),
    plot.subtitle = element_text(size = 12, margin = margin(b = 10)),
    axis.text.x = element_text(angle = 45, hjust = 1),
    legend.position = "right",
    legend.background = element_rect(fill = "transparent"),
    panel.grid.major.y = element_line(color = "#eeeeee"),
    panel.grid.minor = element_blank()
  )

  1. Analyse Informatique

Initialement, on importe les données à partir d’un fichier externe au format CSV en utilisant la fonction read_csv(), qui assure une performance maximale pour de grandes quantités de données organisées en tableau.

Cette importation présuppose la présence et une bonne structuration des champs clés, notamment l’heure à laquelle chaque incendie a eu lieu (heure) et son type secondaire (nature_inc_sec).

Le but est de combiner ces deux aspects afin d’identifier des schémas temporels de déclenchement, c’est-à-dire des créneaux horaires plus susceptibles d’être liés au démarrage d’incendies de divers types.

L’analyse temporelle des données s’effectue en utilisant une segmentation basée sur des intervalles horaires fixes, divisés ici par tranches de trois heures : de minuit à 03h, de 03h à 06h, et ainsi de suite jusqu’à 21h-24h.

La conversion des heures brutes en segments horaires classés se fait par l’intermédiaire de la fonction mutate() du tidyverse, associée à une condition case_when().

Cette méthode garantit un traitement vectorisé et cohérent de la colonne heure.

Après avoir déterminé les créneaux horaires, les données sont regroupées en combinant les variables tranche_horaire et nature_inc_sec. 

Cela donne lieu à un tableau de contingence dénormalisé, qui montre le nombre d’incendies qui se sont produits dans chaque plage horaire pour chaque type secondaire d’incendie.

Ce regroupement est réalisé en utilisant les fonctions group_by() et summarise(), conformément aux normes de manipulation de données en pipeline caractéristiques du paradigme tidyverse.

Cette compilation sert de fondement à l’analyse visuelle subséquente.

La visualisation s’appuie sur le package ggplot2, très apprécié pour sa flexibilité et sa performance dans l’illustration graphique de données complexes.

On propose deux variantes du diagramme : une première d’origine, qui utilise une palette viridis conçue pour l’accessibilité (en particulier pour les personnes atteintes de daltonisme), et une seconde, plus esthétique et sémantique, tirée de la palette YlOrRd dérivée de RColorBrewer.

Cette palette de couleurs, variant du jaune clair au rouge profond, évoque instinctivement la puissance et la chaleur du feu, ce qui apporte une cohérence visuelle en rapport avec le phénomène analysé.

Le mode empilé de geom_bar() est utilisé pour visualiser à la fois le volume total d’incendies par segment horaire et leur répartition interne selon les types secondaires.

L’incorporation d’aspects esthétiques — comme l’inclinaison des labels de l’axe X, le style typographique du titre, l’épaisseur des barres ou même la présence d’un fond blanc autour des segments — témoigne d’une préoccupation marquée pour la clarté du graphique.

Ces sélections respectent les meilleures méthodes en visualisation scientifique, où la transparence de l’information prévaut sur l’impact esthétique brut.

En outre, l’utilisation de factor() pour la classification manuelle de la variable tranche_horaire assure un classement basé sur l’ordre logique plutôt que sur l’ordre alphabétique des tranches, prévenant ainsi toute confusion dans l’analyse temporelle.

  1. Analyse Statistique:

Le diagramme désigné « Heures critiques des incendies par nature : Distribution des incendies secondaires selon les créneaux horaires » offre une représentation graphique des informations relatives à la périodicité des incendies secondaires en lien avec les tranches horaires sur une durée de 24 heures. On distingue deux types majeurs d’incendies secondaires : « particulier » et « travaux », auxquels s’ajoute une catégorie supplémentaire « NA » (non attribuée).

L’axe horizontal illustre les intervalles de temps (de 00h-03h à 21h-24h), alors que l’axe vertical dépeint le nombre d’incendies, avec une gamme s’étendant de 0 à 450.

Cette étude a pour objectif d’explorer la répartition temporelle des incendies secondaires, de déterminer les moments clés, et d’aborder l’importance de ces conclusions dans une perspective statistique et pratique.

Le diagramme est un histogramme superposé, où chaque colonne illustre un segment horaire de trois heures. Les segments colorés sur les barres sont : un jaune pâle pour les incendies dits « particuliers », l’orange pour ceux liés aux « travaux », et une ligne noire mince pour la catégorie « NA ».

Une première analyse montre une grande fluctuation du nombre d’incendies en fonction des créneaux horaires. Les créneaux horaires de 15h à 18h et de 18h à 21h montrent les taux les plus élevés, avoisinant les 400 incendies, alors que les plages horaires de minuit à 3h, de 3h à 6h et de 21h à minuit dénotent des fréquences très basses, en dessous de 50 incendies.

Concernant la répartition par nature, les incendies classés comme « particulier » et « travaux » prédominent de manière significative, tandis que la catégorie « NA » a une contribution négligeable. Il semble que les incendies associés aux « travaux » soient un peu plus courants que ceux classés comme « particulier » durant les périodes de forte activité (15h-18h et 18h-21h), ce qui indique une éventuelle relation entre les activités professionnelles et l’apparition de ces incendies secondaires.

  • 00h-03h : ~10 incendies (majoritairement “travaux”, faible contribution “NA”).
  • 03h-06h : ~20 incendies (similaire à la tranche précédente, avec une légère augmentation des “particuliers”).
  • 06h-09h : ~20 incendies (répartition équilibrée entre “particulier” et “travaux”).
  • 09h-12h : ~120 incendies (augmentation notable, avec une répartition ~50/50 entre “particulier” et “travaux”).
  • 12h-15h : ~100 incendies (légère baisse par rapport à la tranche précédente, répartition similaire).
  • 15h-18h : ~400 incendies (pic maximal, avec ~200 “particulier” et ~200 “travaux”).
  • 18h-21h : ~380 incendies (second pic, répartition similaire à 15h-18h).
  • 21h-24h : ~50 incendies (forte baisse, avec une contribution mineure de “NA”).

Il est évident que les créneaux horaires de 15h à 18h et de 18h à 21h sont les plus critiques, car ils constituent près de 80 % du nombre total d’incendies secondaires sur une journée (en supposant un total approximatif de 1000 incendies sur 24 heures, estimation fondée sur la hauteur cumulative des barres).

Cette focalisation temporelle indique un phénomène de nature cyclique associé à des éléments humains ou environnementaux, que nous examinerons plus en détail par la suite.

L’analyse de la répartition entre les catégories « particulier » et « travaux » révèle une symétrie notable durant les plages horaires les plus dynamiques.

Par exemple, dans la plage horaire de 15h à 18h, les deux catégories contribuent presque de manière équivalente (~200 incendies pour chacune).

Cela pourrait suggérer que les incendies secondaires, qu’ils soient d’origine domestique (« particulier ») ou professionnelle (« travaux »), ont en commun certains facteurs déclenchants à ces moments précis, tels qu’une intensification de l’activité humaine, une augmentation de la température, ou des conditions environnementales particulières (vent, sécheresse).

La catégorie « NA » demeure marginale, ne représentant jamais plus de 5 % du total à aucun moment de la journée.

Cela indique une classification efficace des données, avec peu d’incidents non attribués.

Toutefois, cette catégorie pourrait mettre en évidence des insuffisances dans la collecte de données ou des incendies dont l’origine reste inconnue, ce qui nécessite une considération spécifique dans une analyse plus détaillée.

Pour structurer l’étude, envisageons la distribution des incendies comme une série temporelle discrète sur 24 heures, segmentée en 8 tranches de 3 heures.

On remarque une distribution fortement asymétrique, avec un regroupement notable entre 15h et 21h.

Les créneaux horaires de pointe identifiés (15h-21h) correspondent à des moments d’intense activité humaine.

Concernant les incendies de catégorie « travaux », ceux-ci peuvent correspondre à des opérations professionnelles ou industrielles qui atteignent leur point culminant en fin de journée, tels que des projets de construction ou d’entretien nécessitant l’utilisation d’équipements dangereux (soudure, machines électriques).

En ce qui concerne les incendies dits « particuliers », cette tranche horaire pourrait coïncider avec des activités domestiques telles que la préparation des repas ou l’usage d’appareils électroménagers, qui ont généralement tendance à se produire plus régulièrement en fin de journée.

Des éléments environnementaux, comme la température ou l’humidité, pourraient aussi avoir une influence, particulièrement si les informations se rapportent à une saison de l’année sujette aux feux (été). Il est probable que la diminution de l’activité humaine durant la nuit et tôt le matin soit à l’origine des basses fréquences observées entre minuit et 9h.

En résumé, l’examen statistique du diagramme montre une importante concentration d’incendies secondaires entre 15h et 21h, avec une distribution équilibrée entre les catégories « particulier » et « travaux ».

5.3.1.6 Cyclicité hebdomadaire
incendies <- read.csv("../Data/donnees_incendies.csv")

incendies$jour <- as.Date(incendies$jour, format="%Y-%m-%d")

head(incendies$jour)
## [1] "1970-01-29" "1970-01-30" "1970-01-03" "1970-01-03" "1970-01-09"
## [6] "1970-01-15"
Sys.setlocale("LC_TIME", "fr_FR.UTF-8")  
## [1] "fr_FR.UTF-8"
incendies$jour_semaine <- weekdays(incendies$jour, abbreviate = FALSE)

print(unique(incendies$jour_semaine)) 
## [1] "jeudi"    "vendredi" "samedi"   "dimanche" "mercredi" "mardi"    "lundi"
incendies$jour_semaine <- factor(incendies$jour_semaine, 
                                 levels = c("lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"))

semaine_incendies <- sum(incendies$jour_semaine %in% c("lundi", "mardi", "mercredi", "jeudi", "vendredi"))
weekend_incendies <- sum(incendies$jour_semaine %in% c("samedi", "dimanche"))

total_incendies <- c(semaine = semaine_incendies, weekend = weekend_incendies)

par(mar = c(2, 2, 2, 2))  
pie(total_incendies, 
    col = c("lightblue", "orange"), 
    main = "Repartition des incendies entre semaine et week-end",
    labels = c("Semaine (Lun-Ven)", "Week-end (Sam-Dim)"),
    cex = 1) 

  1. Analyse Informatique:

Transformation de la colonne “date” en type Date:

Nous utilisons la fonction as.Date() pour transformer la colonne « date » en un objet de type Date. Le format indiqué est “%Y-%m-%d”, qui représente l’année, le mois et le jour selon la norme.

Extraction du jour de la semaine:

La fonction weekdays() est employée pour extraire le nom du jour de la semaine à partir de la colonne date.

Nous commençons par définir la langue française de localisation grâce à Sys.setlocale(), afin que les jours soient affichés dans cette langue, comme par exemple « lundi ».

Verification des jours uniques:

Cette instruction permet de montrer les valeurs distinctes trouvées dans la colonne « jour_semaine » pour vérifier les jours récupérés.

Création d’un facteur pour les jours:

Nous convertissons la colonne « jour_semaine » en facteur, avec les niveaux des jours clairement définis de lundi à dimanche, assurant ainsi leur séquence correcte.

Calcul du nombre d’incendies pendant la semaine et le weekend:

Nous comptons ici les incendies qui se déclenchent durant la semaine, du lundi au vendredi, ainsi que pendant le week-end, c’est-à-dire samedi et dimanche.

Ceci est effectué en utilisant l’opérateur %in% pour confirmer quel jour correspond à l’événement.

Création d’un vecteur avec les résultats:

Un tableau nommé « total_incendies » est créé pour conserver les résultats des incendies durant la semaine et le week-end.

Creation d’un graphique circulaire:

Pour finir, nous utilisons la fonction pie() pour créer un diagramme circulaire afin d’illustrer la répartition des incendies entre la semaine et le weekend, en optant pour des couleurs et étiquettes sur mesure, tout en modifiant les marges pour une présentation plus soignée.

  1. Analyse Statistique:

Incendies fréquents pendant la semaine active:

Les informations indiquent que la majorité des incendies se déclarent en semaine, à cause de divers facteurs.

Parfois, l’augmentation de l’activité humaine et une forte densité de population peuvent engendrer plus de risques.

Au cours des heures de travail et durant les déplacements, les activités domestiques ou industrielles augmentent les risques potentiels.

De plus, les incendies peuvent également être favorisés par le travail ou les conditions météorologiques : l’usage d’instruments ou d’équipements électriques lors de journées de travail intenses en est fréquemment une raison.

Fin de semaine plus paisible:

Le week-end semble présenter un risque d’incendie réduit, en raison de la diminution des activités professionnelles et industrielles, ainsi que de la réduction des déplacements et de l’utilisation d’appareils susceptibles de déclencher un feu.

Il est probable qu’en week-end, lorsque les activités commerciales et industrielles sont réduites ou absentes, les personnes utilisent moins d’appareils ou adoptent davantage de mesures de précaution.

5.3.2 Facteurs climatiques et météorologiques

5.3.2.1 Influence de la température sur les incendies
5.3.2.2 Impact de l’humidité sur les incendies

Pour mener l’analyse de l’influence de l’humidité sur les incendies, il est nécessaire de constituer notre base d’analyse. Il est nécessaire d’utiliser les deux tables que nous avons mises en place dans notre Base de données, à savoir la Table Incendies et la Table donnees_meteo.

Afin de réaliser une jointure entre ces deux tables, nous avons fait appel à une troisième table nommée humidite qui regroupe les champs des deux tables visées, partageant un élément en commun : le « Code_INSEE ». Nous avons détaillé la méthode utilisée pour cela dans la section Informatique de notre rapport.

Avant d’approfondir dans les détails de notre étude, nous allons d’abord définir les termes clés que nous utiliserons dans notre analyse. L’humidité se réfère à la présence de vapeur d’eau dans l’air.

Le but de notre analyse est d’étudier le lien entre l’humidité atmosphérique et les incendies. Pour accomplir cela, nous devons étudier la relation entre l’humidité et la dimension des incendies.

Il est essentiel de mettre en évidence deux attributs importants.

  1. Tens_vap_med: Cet attribut évalue la pression de vaporisation moyenne, qui est une autre façon de dire qu’il s’agit d’un indicateur de l’humidité de l’air.

  2. surface_parcourue_m2: Cette caractéristique présente la superficie ravagée par un feu, ce qui en fait un instrument pour évaluer l’intensité du feu.

Dans cette étude, nous allons créer et analyser deux graphes indispensables à notre problématique.

  1. Histogramme de l’humidité

Le diagramme de l’humidité nous aidera à examiner et à saisir la distribution des taux d’humidité dans l’échantillon de données.

L’humidité joue un rôle crucial dans l’analyse des incendies en raison de son impact sur la rapidité de leur avancement. Cependant, avant d’examiner toute relation avec la surface incendiée, nous devons d’abord comprendre comment l’humidité fluctue dans les données.

library(ggplot2)
data <- read.csv("../Exports/export_Humidites.csv")
ggplot(data, aes(x = Tens_vap_med)) +
  geom_histogram(binwidth = 0.5, fill = "#1f77b4", color = "white", alpha = 0.7) +
  labs(title = "Distribution de l'humidité de l'air (Tens_vap_med)", 
       x = "Humidité de l'air (Tens_vap_med)", 
       y = "Fréquence") +
  theme_minimal()

  1. Analyse Informatique:

Dans notre code destiné à la création du graphique, nous avons employé le langage R pour sa réalisation. Tout d’abord, nous avons importé le fichier en utilisant la méthode read.csv().

Par la suite, on procède à l’initialisation du graphique que l’on souhaite concevoir avec la méthode ggplot().On passe en paramètres de cette méthode les données ainsi que l’aes,qui nous permet de spécifier que l’axe des x sera représenté par Tens_vap_med.

On définit ensuite une autre méthode geom_histogram() pour intégrer un histogramme au graphique. Dans cette méthode, on spécifie des paramètres pour déterminer la largeur des barres de l’histogramme, et par la suite, on remplit les barres en bleu. Nous définissons la bordure en blanc et rendons les barres davantage transparentes.

On détermine les titres et étiquettes en faisant appel à la méthode labs(), en exploitant les paramètres title, x et y.Le titre indique le sujet du graphique, ‘x’ correspond à l’étiquette de l’axe horizontal et ‘y’ correspond à l’étiquette de l’axe vertical.

Et pour donner un aspect minimaliste au thème, nous avons employé la méthode theme_minimal() afin d’incorporer un style plus contemporain.

  1. Analyse Statistique:

L’axe des abscisses illustre l’humidité de l’air, déterminée par la pression de vapeur moyenne. Les chiffres se situent approximativement entre 0 et 25.On présume que les valeurs sont exprimées en hPa. C’est une unité utilisée pour évaluer la pression de la vapeur.

L’axe ordonnes illustre la fréquence, c’est-à-dire le total des observations pour chaque plage de tension de vapeur. Il a atteint une fréquence maximale de 200.

D’après les informations intégrées, cet histogramme révèle une distribution asymétrique avec une importante concentration de valeurs faibles en matière d’humidité de l’air, allant de 5 à 15 hPa.

L’histogramme présente une asymétrie vers la droite, avec un grand nombre d’observations ayant de faibles valeurs de tension de vapeur, indiquant une humidité faible à modérée, et quelques observations à des valeurs plus élevées, traduisant une humidité supérieure.

On pourrait affirmer que la classe modale de cet histogramme se situe approximativement entre 10 et 12 hPa.

La portée de cet histogramme s’étend de 0 à 25 hPa. Néanmoins, on remarque qu’il existe très peu de données entre 20 et 25 hPa. De plus, il est évident qu’au-delà de 22 hPa, aucune observation n’est présente.

Dans notre histogramme, on peut observer la présence d’une longue queue, bien qu’elle soit peu dense. Autrement dit, cela nous indique que les valeurs élevées de tension de vapeur sont peu fréquentes dans cet ensemble de données.

Nous allons déterminer les interprétations des intervalles concernant le taux d’humidité.

  1. 0 a 5 hPa: Cette plage indique un taux d’humidité très bas.
  2. 5 a 15 hPa: C’est la zone où est rassemblée la plupart des données. La fréquence s’accroît rapidement dès que l’on atteint 5 hPa, atteignant un maximum aux alentours de 10 à 12 hPa avant de redescendre. Cela signifie que le niveau d’humidité est modéré.
  3. 15 a 20 hPa:Dans cette période, nous observons une réduction qui est associée à des conditions plus humides.
  4. 20 a 25 hPa:Les observations sont peu fréquentes. La fréquence étant pratiquement de 0, on peut observer que nous avons des conditions hors du commun, telles que des climats tropicaux.

Dans un cadre météorologique, la tension de vapeur représente une évaluation de la pression partielle de la vapeur d’eau dans l’atmosphère, liée directement à l’humidité. Selon notre histogramme, une pression de vapeur de 10 hPa est associée à une humidité relative modérée, tandis qu’une pression de vapeur avoisinant les 20 hPa indique un niveau d’humidité considérablement plus élevé, potentiellement proche de la saturation.

Cet histogramme indiquant une concentration autour de 10-12 hPA suggère un climat tempéré, caractérisé par une humidité généralement modérée la majorité du temps, mais avec des périodes plus humides de manière sporadique.

  1. Diagrame de dispersion

Ce schéma nous offre la possibilité d’examiner s’il y a une relation entre l’humidité atmosphérique et l’étendue des incendies (autrement dit, la superficie qu’ils couvrent).

L’objectif est d’observer comment l’humidité influe sur la taille des incendies de manière perceptible.

library(ggplot2)
data <- read.csv("../Exports/export_Humidites.csv")
ggplot(data, aes(x = Tens_vap_med, y = surface_parcourue_m2)) +
  geom_point(aes(color = surface_parcourue_m2), size = 2, alpha = 0.7) + 
  scale_color_gradient(low = "blue", high = "red") + 
  labs(title = "Relation entre l'humidité de l'air et la surface parcourue par les incendies", 
       x = "Humidité de l'air (Tens_vap_med)", 
       y = "Surface parcourue par les incendies (m²)") +
  theme_minimal()

Dans ce diagramme, seul l’axe des X représente l’air mesuré par la tension de vapeur moyenne. Les valeurs varient de 0 à 25 hPa. L’axe des Y représente la superficie parcourue par les incendies, exprimée en mètres carrés.

Nous avons choisi d’utiliser un graphique de type nuage de points, également appelé scatter plot, où chaque point représente une observation (incendie) associée à deux variables. Premièrement, il s’agit de l’humidité atmosphérique au moment du sinistre, et en second lieu, de la superficie affectée par cet incendie (Y).

La couleur des points varie du bleu au rouge, conformément à l’échelle indiquée sur la droite. Les points bleus représentent des surfaces inférieures à 250 000 m², alors que les points rouges sont associés à des surfaces supérieures.

Débutons par l’étude de la répartition des points, en mettant d’abord l’accent sur leur concentration. La plupart des points se regroupent dans la plage d’humidité de 0 à 15 hPa, avec une densité particulièrement élevée entre 5 et 12 hPa. Cela entraîne des niveaux d’humidité modérés.

On remarque également que le nombre de points au-delà de 20 hPa est très limité, ce qui suggère que les incendies dans des conditions extrêmement humides sont rares.

En ce qui concerne la superficie affectée par les incendies, allant de 0 à 250 000 m², on remarque que la majorité d’entre eux ont une portée assez restreinte. Pour les surfaces allant jusqu’à 1 000 000 m2, le graphique semble indiquer que les incendies de plus grande ampleur sont moins communs.

Concernant le lien entre l’humidité et la surface parcourue, on remarque une concentration de points bleus dans l’intervalle d’humidité de 5 à 15 hPa. Cela indique que les incendies de faible envergure se produisent plus souvent dans des conditions d’humidité modérées. En ce qui concerne les points rouges, ils sont plus éparpillés et se situent dans la même fourchette, bien qu’il existe des points rouges dans des zones où l’humidité est à la fois plus basse et plus élevée.

On ne constate pas de lien clair et direct entre le taux d’humidité de l’air et la superficie touchée par les feux. Les feux de grande envergure (indiqués par des points rouges) surviennent à divers niveaux d’humidité, toutefois, la plupart d’entre eux (qu’ils soient petits ou grands) se regroupent dans l’intervalle de 5 à 15 hPa.

Cependant, une tendance mineure peut être observée : les incendies de plus grande envergure (près de 1 000 000 m²) ont l’air de survenir un peu plus fréquemment dans des conditions d’humidité plus basse (environ 5 hPa ou moins), où l’air est plus sec, ce qui facilite la diffusion des flammes. Néanmoins, cette tendance n’est pas très prononcée.

  1. Comparaison avec l’histograme precedent:

L’histogramme précédent nous indiquait que la pression de vapeur moyenne se situait approximativement entre 5 et 15 hPa, avec un sommet autour de 10-12 hPa. Cette distribution est confirmée par ce nuage de points.

Les quelques rares points au-delà de 20 hPa dans l’histogramme témoignent de la confirmation que les incendies sont peu fréquents dans des conditions très humides.

  1. Analyse Statistique

Après avoir réalisé l’analyse des deux graphiques, nous sommes en mesure d’effectuer une analyse statistique.

Nous allons effectuer un calcul de corrélation.Elle nous offrira la possibilité d’évaluer l’intensité et le sens de la corrélation linéaire entre l’humidité atmosphérique et les dimensions des feux.

Avant tout, définissons les choses. Il s’agit d’une mesure statistique qui illustre la force et la direction d’un lien entre deux variables. Elle nous aide, de manière simple, à saisir comment deux variables se déplacent l’une par rapport à l’autre. On utilise le coefficient de corrélation de Pearson, qui se situe entre -1 et 1, pour quantifier la corrélation. Avec 1 représentant une corrélation parfaitement positive, -1 une corrélation parfaitement négative et 0 signifiant aucune corrélation.

correlation <- cor(data$Tens_vap_med, data$surface_parcourue_m2, use = "complete.obs")
print(paste("Corrélation entre Tens_vap_med et surface_parcourue_m2: ", correlation))
## [1] "Corrélation entre Tens_vap_med et surface_parcourue_m2:  -0.0211442157372533"

Dans ce code, nous avons fait appel à la fonction « cor() » afin de déterminer la corrélation de Pearson entre Tens_vap_med et surface_parcourue_m2, en omettant les variables manquantes. La méthode cor() nous donnera un coefficient de corrélation, comme expliqué précédemment.

  1. Si la corrélation est haute, proche de 1, cela nous permet d’affirmer qu’une hausse de l’humidité est liée à une extension des incendies.

  2. Si la corrélation est négative (proche de -1), cela implique qu’une hausse de l’humidité est liée à une réduction de la grandeur des feux.

  3. Une corrélation proche de 0 suggère l’absence d’une relation linéaire manifeste.

L’analyse de corrélation révèle qu’il n’existe pas de lien linéaire prononcé entre le taux d’humidité et l’ampleur des feux dans vos informations. Selon cette étude, l’humidité semble avoir une influence marginale sur l’ampleur des incendies.

Apres avoir calcule la correlation on va y tracer le graphe de cette correlation

library(ggplot2)
data <- read.csv("../Exports/export_Humidites.csv")
ggplot(data, aes(x = Tens_vap_med, y = surface_parcourue_m2)) +
  geom_point(color = "blue", alpha = 0.6) +  # Ajoute les points
  geom_smooth(method = "lm", color = "red", se = FALSE) +  # Ajoute la droite de régression
  labs(title = "Corrélation entre Force du Vent et Surface Parcourue",
       x = "Tens_vap_med (moyenne)",
       y = "Surface Parcourue (m²)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

5.3.2.3 Relation entre le vent et la propagation des incendies

Pour examiner la question relative à la corrélation entre le vent et la diffusion des incendies sur le sol français, nous adopterons une approche distincte en segmentant ce sujet en quatres sous-questions.

C’est pourquoi, pour aborder ce problème, on devrait considérer ces cinq enjeux :

  1. Force du vent
  2. Surface parcourue par le feu en fonction de la Force du vent
  3. Force du vent par zone géographique
  4. Surface parcourue par le feu par zone géographique

Avant d’examiner les quatre sous-problèmes, nous allons inspecter la corrélation.Nous pourrions vérifier la corrélation entre la puissance du vent et la surface parcourue en mètres carrés. En procédant ainsi, nous pourrions déterminer s’il existe une relation linéaire entre ces deux variables.

On remarque donc que si le coefficient de corrélation se rapproche de -1 ou 1, cela signifie qu’il existe une relation linéaire significative entre ces deux variables.

data <- read.csv("../Exports/export_vents.csv")
cor(data$Force_vent_med, data$surface_parcourue_m2, use = "complete.obs")
## [1] 0.03137438

Puisque le coefficient de corrélation de Pearson est proche de 0, cela indique qu’il n’existe pas de relation linéaire significative entre les deux variables.

Pour une perspective plus statistique, nous allons essayer la régression polynomiale.C’est une technique employée pour modéliser le lien entre une variable indépendante, comme dans notre situation la puissance du véhicule, et une variable dépendante, ici la distance parcourue par le feu, à condition que ce lien ne soit pas linéaire. Cela s’applique à notre situation.

Cela nous offre la possibilité de mieux saisir les courbures ou les tendances complexes des données, contrairement à une régression linéaire simple qui postule une relation proportionnelle constante entre les deux variables.

Dans ce contexte, nous employons une régression polynomiale de degré 2, que l’on peut également qualifier de régression quadratique.Cette dernière intègre finalement le terme linéaire (force du vent) ainsi que le terme quadratique (force du vent au carré).

On va détailler davantage pourquoi nous avons opté pour une régression polynomiale, étant donné qu’elle nous offre la possibilité de saisir des relations non linéaires entre les variables.Une condition est établie si le lien entre la puissance du vent et la superficie touchée par le feu suit une courbe, comme c’est le cas dans notre scénario, avec une accélération rapide initiale qui se ralentit à mesure que la force du vent s’intensifie.Dans ce contexte, une régression polynomiale serait plus appropriée qu’une régression linéaire simple.

library(ggplot2)

# Charger les données
data <- read.csv("../Exports/export_vents.csv")

# Créer un graphique avec régression polynomial
ggplot(data, aes(x = Force_vent_med, y = surface_parcourue_m2)) +
  geom_point(color = "black", size = 2) + 
  geom_smooth(method = "lm", formula = y ~ poly(x, 2), color = "blue", se = FALSE) + 
  labs(title = "Régression Polynomial", 
       x = "Force du Vent", 
       y = "Surface Parcourue (m²)") +
  theme_minimal()

Nous allons détailler, à travers une analyse informatique, la manière dont nous avons réalisé la régression polynomiale.Pour cela, nous avons utilisé la méthode geom_smooth(), accompagnée de l’argument method = “lm” qui indique que nous sommes en présence d’un modèle de régression.La formule = y ~ poly(x, 2) précise qu’il s’agit d’une régression polynomiale de degré 2 (quadratique).

Nous allons pouvoir intégrer une courbe de régression linéaire grâce à la méthode geom_smooth(method = “lm”). L’indication précise que le modèle repose sur une analyse de régression linéaire.

Cette spécification, formula = y ~ poly(x, 2), indique au langage R que nous souhaitons un modèle polynomial du second degré. poly(x, 2) est une fonction qui produit les termes x et x^2, représentant respectivement la vitesse du vent et son carré.Cela permettra à la régression de s’ajuster à la fois à une pente linéaire et à une courbure quadratique des données.

L’attribut color=“blue” nous offre la possibilité de peindre la courbe de régression en bleu, ce qui permet une distinction claire avec les autres éléments du graphe. Et en outre, se=FALSE nous permettra de désactiver l’affichage de la marge d’erreur autour de la courbe de régression.

  1. Force du vent

Dans cette sous-problematique on va analyser la force du vent:

library(ggplot2)
data <- read.csv("../Exports/export_vents.csv")
ggplot(data, aes(x = Force_vent_med)) +
  geom_histogram(binwidth = 1, fill = "red", color = "black", alpha = 0.7) +
  labs(title = "Histogramme de la Force du Vent", x = "Force du Vent", y = "Fréquence") +
  theme_minimal()

  1. Analyse Informatique:

Tout d’abord, nous allons détailler la méthode de construction de notre graphique. Nous avons utilisé la bibliothèque ggplot du langage R pour élaborer cet histogramme.Ensuite, nous avons importé nos données en spécifiant le chemin relatif du fichier CSV que nous avons conçu et développé à l’aide du langage Python et de la gestion des fichiers.

Dans le processus de chargement du fichier, nous avons employé la méthode read.csv pour interpréter le fichier CSV, et nous avons enregistré ces informations dans la variable data.

Par la suite, nous avons fait appel à la méthode, définie dans la bibliothèque ggplot2, soit la méthode ggplot. Nous lui avons précisé l’emplacement des données stockées et mis en place une autre méthode aes, signifiant aesthetics, pour indiquer quelles colonnes de données devraient être visualisées sur les axes. Dans notre situation, nous attribuons l’axe des x à la variable Force_vent_med qui va symboliser l’intensité du vent mesurée.

Par la suite, nous employons la méthode geom_histogram() pour intégrer l’histogramme à la représentation graphique. Nous spécifions la largeur des barres, la teinte que nous voulons utiliser pour leur remplissage, la nuance du contour et également le degré de transparence des barres.

On termine par la définition des étiquettes et des titres de notre histogramme grâce à la méthode labs(). On y inclut le titre du graphique ainsi que les libellés pour les deux axes, x et y. De plus, comme nous avons opté pour un style minimaliste, nous avons utilisé la méthode theme_minimal() afin de conférer un aspect plus contemporain au graphique.

  1. Analyse Statistique:

On présume que la force du vent est évaluée en kilomètres par heure.

Cette histograme represente la distribution de la force du vent mesure en Km/h. L’échelle horizontale montre la puissance du vent, avec des valeurs variant de 0 à 10,5.L’axe des y symbolise la fréquence, soit le nombre d’apparitions de chaque plage de force du vent, avec des valeurs se situant approximativement entre 0 et 400.

L’histogramme indique une distribution asymétrique vers la droite, ce qui implique une concentration accrue de données pour des valeurs faibles de la force du vent, avec une longue traîne vers les valeurs plus élevées.

Le sommet de l’histogramme se trouve approximativement dans la gamme de 3.5 à 4.0 pour la force du vent, avec une fréquence avoisinant les 400. Cela nous indique que dans cet échantillon, la force du vent la plus courante se situe dans cette plage.

Concernant la portée des valeurs, la force du vent varie approximativement de 0 à 10,5. Toutefois, les occurrences de valeurs dépassant 8 sont extrêmement rares, ce qui indique que de très forts vents sont peu fréquents dans cet ensemble de données.

Presque 80% des données se regroupent entre 0 et 5.5 environ, ce qui indique que cet échantillon est principalement dominé par les vents légers à modérés.

La moyenne de cet histogramme se situe légèrement au-dessus du mode, estimée approximativement entre 4.0 et 4.5.Concernant la médiane, elle se positionne probablement autour de 3.5, car la distribution penche vers la droite, divisant l’échantillon en deux segments égaux.

Cet histogramme pourrait illustrer des relevés de la puissance du vent sur une période déterminée.La prévalence de brises légères à modérées (0.0 à 5.5) indique un climat plutôt paisible, avec la présence exceptionnelle de vents puissants au-delà de 8, qui pourraient survenir lors d’événements rares associés à des phénomènes météorologiques tels que des tempêtes.

Maintenant on va tracer une courbe de densite:

# Histogramme avec courbe de densité pour la Force du Vent
data <- read.csv("../Exports/export_vents.csv")
ggplot(data, aes(x = Force_vent_med)) +
  geom_histogram(aes(y = ..density..), binwidth = 1, fill = "red", color = "black", alpha = 0.7) +
  geom_density(color = "blue", size = 1) + 
  labs(title = "Distribution de la Force du Vent avec Courbe de Densité", x = "Force du Vent", y = "Densité") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The dot-dot notation (`..density..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(density)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Dans ce graphique, nous avons tracé une courbe de densité pour illustrer la répartition de la puissance du vent dans nos données.Ainsi, l’axe des X reflète la force du vent tandis que l’axe des Y indique la densité, c’est-à-dire en d’autres termes,la fréquence relative plutôt que le nombre absolu.

La densité sert à normaliser l’histogramme afin qu’il présente une surface totale de 1, ce qui simplifie la comparaison entre différentes distributions ayant des échantillons variés.

La courbe de densité représente une estimation non paramétrique de la fonction de densité des probabilités. Elle est fluide et représente la probabilité que les observations prennent une valeur dans une certaine plage de force du vent.

La courbe de densité fournit une indication sur la structure globale de la distribution des données.

Si la courbe est centrée sur une certaine valeur, cela signifie que la plupart des données sont groupées autour de cette valeur.

Si la courbe est plate ou étendue, cela suggère une plus grande variabilité des données.

Nous allons également décrire la manière dont nous avons réalisé la partie informatique en utilisant la fonction geom_histogram(aes(y = ..density..)), ce qui nous a permis de construire l’histogramme. L’argument aes(y = ..density..) spécifie que l’axe des ordonnées doit refléter la densité plutôt que la fréquence brute. Cela nous permettra de standardiser les données afin que l’aire totale sous l’histogramme soit de 1.

La commande geom_density(color = “blue”, size = 1) nous offre la possibilité d’intégrer la courbe de densité.

La fonction labs(title = “Distribution de la Force du Vent avec Courbe de Densité”, x = “Force du Vent”, y = “Densité”) nous donne la possibilité de spécifier le titre du diagramme ainsi que les étiquettes des axes X et Y.

La fonction theme_minimal() applique un style épuré au graphique, éliminant les éléments visuels superflus.

  1. Surface parcourue par le feu en fonction de la force du vent
library(ggplot2)

data <- read.csv("../Exports/export_vents.csv")

ggplot(data, aes(x = Force_vent_med, y = surface_parcourue_m2)) +
  geom_point(color = "black", size = 2) + 
  labs(title = "Surface Parcourue par le Feu en fonction de la Force du Vent", 
       x = "Force du Vent", 
       y = "Surface Parcourue (m²)") +
  theme_minimal() +  # Thème minimal pour une présentation épurée
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),
    axis.text.y = element_text(size = 12),
    axis.title = element_text(size = 14, face = "bold"),
    plot.title = element_text(size = 16, face = "bold", hjust = 0.5)
  )

  1. Analyse Informatique:

Tout d’abord, nous allons décrire comment nous avons développé notre code. Pour commencer, nous avons importé notre bibliothèque ggplot2 afin de créer des visualisations complexes en langage R. Par la suite, nous avons chargé notre fichier contenant les données grâce à la méthode read.csv() et avons assigné le résultat à une variable nommée data. Cette variable data représente l’objet où nous conservons ces informations.

Ensuite, nous élaborons notre diagramme de dispersion en utilisant la méthode ggplot(), qui intègre les données. Par ailleurs, l’axe des x, déterminé par l’aes, représentera la force du vent alors que l’axe des y illustrera la surface parcourue en m².

Actuellement, nous sommes dans la phase où nous ajoutons des points pour pouvoir représenter les données. Nous utilisons la méthode geom_point() pour ce faire. Nous avons spécifié la couleur des points en noir et aussi déterminé la taille des points pour une visibilité optimale en utilisant l’option size = 2.

Pour une lecture optimale du graphique, nous avons utilisé la fonction labs(). Nous avons ajouté le titre au graphique et précisé les noms des deux axes en recourant à x et y.

Comme le graphe precedent on a utilise la methode du theme_minimal() pour le mettre dans un desin plus minimaliste

À l’instar du graphique précédent, nous avons employé la technique du theme_minimal() afin de le présenter dans une design plus épuré.

Pour accroître la clarté des axes et du titre, nous faisons appel à la fonction theme(). En manipulant axis.text.x et axis.text.y, nous avons employé l’option element_text pour le rendre incliné, modifier sa taille, etc. Quant aux attributs des deux axes, nous avons utilisé axis.title pour mettre le texte en gras grâce à l’attribut face.Pour le titre principal du graphique, on utilise plot.title pour ajuster ses caractéristiques à l’aide de size, face et hjust.L’utilisation de hjust permet de positionner le titre au centre.

  1. Analyse Statistique:

Commençons par examiner ce sous-problème qui se focalise sur la superficie que couvre le feu en relation avec l’intensité du vent. Tout d’abord, on remarque que la force du vent varie entre 0 et 10 unités. De plus, la superficie affectée par le feu ou les incendies est presque de 0 à 1 000 000.

On remarque une concentration significative de points entre 0 et 5 unités de force du vent, avec une superficie allant de 0 à environ 750 000 m².

Il est également possible de conclure qu’au-delà de cinq unités, les points commencent à devenir rares et la surface parcourue tend à se stabiliser tout en réduisant légèrement.

L’accumulation de points indique qu’une intensification du vent a tendance à élargir la portée du feu, particulièrement dans le cas de vents faibles à modérés.Toutefois, ce lien n’est pas rigoureusement linéaire, étant donné la large répartition des points.

Au-delà d’une certaine intensité de vent (approximativement 7-8 unités), la surface couverte ne paraît pas s’accroître de manière proportionnelle, ce qui pourrait suggérer un phénomène de saturation ou des éléments restrictifs (tels que la disponibilité du combustible, l’humidité ou la topographie).

Il est également important de souligner que la puissance du vent joue un rôle crucial dans la diffusion des incendies, puisqu’elle transporte de l’oxygène et les particules embrasées amplifient ainsi la vitesse de propagation et l’étendue touchée. Ceci justifie l’orientation initiale à la hausse.

Synthese de la Problematique

Ainsi, pour résumer cette question, nous avons d’abord établi une corrélation entre la force du vent et la superficie touchée par le feu.Nous avons constaté qu’il n’y a pas de relation linéaire entre ces deux facteurs. Pour saisir plus fidèlement la complexité de la relation, nous avons réalisé une régression polynomiale de degré 2. Cette méthode nous a autorisé à noter que la surface affectée par l’incendie a tendance à croître plus significativement à des niveaux faibles de la force du vent avant de diminuer à mesure que cette dernière devient plus intense.Cela indique qu’il y a une dynamique non linéaire entre ces deux éléments,avec un effet d’accélération initial suivi d’un processus de plafonnement.

L’analyse effectuée sur l’histogramme et la courbe de densité a montré que la majorité des forces du vent se concentre autour de valeurs basses à modérées, avec une queue notable vers les valeurs plus hautes.Cela indique que, dans notre échantillon,les vents de faible à moyenne intensité sont prédominants, tandis que les vents de très haute intensité sont plutôt rares.

Le diagramme de dispersion a révélé une tendance à l’augmentation de la superficie brûlée avec la puissance du vent, bien que cette corrélation ne soit pas entièrement linéaire. Les informations suggèrent que, face à des vents de faible à modéré (jusqu’à environ 5 unités de force),la superficie touchée par le feu s’accroît rapidement.Toutefois, au-delà d’un certain seuil de force du vent, l’expansion de la zone parcourue semble se stabiliser, indiquant d’autres facteurs limitants que’il ne s’agit pas seulement du vent, comme la disponibilité du carburant ou la configuration du terrain.

Les données recueillies indiquent que même si la puissance du vent a un impact significatif sur l’expansion des incendies, elle ne constitue pas le seul élément décisif.D’autres facteurs tels que la disponibilité des carburants, l’humidité du sol et la topographie locale ont aussi un impact sur la diffusion du feu.Ainsi, même si une augmentation de la vitesse du vent peut effectivement favoriser la diffusion des incendies, cette corrélation devient moins directe et plus complexe lorsque le vent atteint des intensités plus extrêmes.

5.3.2.4 Impact des conditions météorologiques extrêmes sur les incendies
  1. Corrélation entre les variable météo et la surface parcourue:

Analyse Informatique:

L’étude informatique de l’influence des phénomènes météorologiques extrêmes sur les feux de forêt, effectuée à l’aide du logiciel R et des bibliothèques ggplot2 et dplyr, a pour objectif d’examiner le lien entre trois facteurs météorologiques — la température maximale moyenne (Tmax_med), la force du vent moyenne (Force_vent_med), et la tension de vapeur moyenne (Tens_vap_med) — et la superficie incendiée (surface_parcourue_m2).

Le code génère trois diagrammes de dispersion, chacun analysant une variable météorologique en lien avec la superficie brûlée, en s’appuyant sur des points semi-translucides pour représenter les informations et une ligne de régression linéaire avec intervalle de confiance pour déceler les orientations.

Le premier graphique examine l’impact de la température maximale moyenne sur la superficie incendiée, en utilisant des points rouge vif (firebrick) et une ligne de régression de couleur noire.

Nommé « Température maximale vs Surface brûlée », il emploie geom_point pour représenter les observations et geom_smooth(method = “lm”) pour effectuer la régression, avec des axes bien labellisés et un style épuré pour une clarté optimale.

Le second schéma a une structure similaire, mais il analyse la force moyenne du vent, utilisant des points de couleur bleu acier (steelblue) et un titre approprié « Force du vent moyenne vs Surface brûlée ».

Pour finir, le troisième graphique examine la pression de vapeur moyenne (un indicateur d’humidité), en utilisant des points de couleur vert foncé et un intitulé « Pression de vapeur moyenne vs Superficie brûlée », en suivant une approche similaire.

Analyse Statistique:

Corrélation entre la Température max vs Surface brûlée

library(ggplot2)
library(dplyr)
data <- read.csv("../Exports/export_incendies_meteo.csv", sep = ",", stringsAsFactors = FALSE)

# Température max vs Surface brûlée
ggplot(data, aes(x = Tmax_med, y = surface_parcourue_m2)) +
  geom_point(alpha = 0.5, color = "firebrick") +
  geom_smooth(method = "lm", se = TRUE, color = "black") +
  labs(title = "Température maximale vs Surface brûlée",
       x = "Température maximale moyenne (°C)",
       y = "Surface parcourue (m²)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

cor.test(data$Tmax_med, data$surface_parcourue_m2, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Tmax_med and data$surface_parcourue_m2
## t = 0.35823, df = 1200, p-value = 0.7202
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.04622886  0.06684410
## sample estimates:
##        cor 
## 0.01034068

Le diagramme « Température maximale face à la Surface brûlée » ainsi que les résultats de l’analyse de corrélation de Pearson fournissent une évaluation du lien entre la température maximale moyenne (Tmax_med) et la surface affectée par les incendies (surface_parcourue_m2).

Le coefficient de corrélation de Pearson calculé est de 0,0103, dénotant une corrélation positive mais très faible entre ces deux variables.

Avec une p-valeur de 0,7202, largement au-dessus du seuil critique de 0,05, le test échoue à rejeter l’hypothèse nulle d’absence de corrélation significative.

En outre, le champ de confiance à 95% pour la corrélation, qui varie de -0,0462 à 0,0668, englobe le chiffre 0. Cela confirme qu’il n’existe pas de signification statistique entre la température maximale et la superficie incendiée dans cet ensemble de données comportant 1202 observations.

Le graphique indique une large dispersion des points rouges, illustrant une concentration prédominante entre 15 °C et 25 °C, et des étendues de terrain ravagées généralement en dessous de 250 000 m², même si certains feux touchent jusqu’à 1 000 000 m² à des températures supérieures.

La tendance linéaire ascendante du graphique de régression indique une faible corrélation positive, toutefois la grande variabilité des données suggère que la température maximale ne peut expliquer qu’une petite portion de la fluctuation des surfaces incendiées.

Corrélation entre la Force du vent vs Surface brûlée

library(ggplot2)
library(dplyr)
data <- read.csv("../Exports/export_incendies_meteo.csv", sep = ",", stringsAsFactors = FALSE)
ggplot(data, aes(x = Force_vent_med, y = surface_parcourue_m2)) +
  geom_point(alpha = 0.5, color = "steelblue") +
  geom_smooth(method = "lm", se = TRUE, color = "black") +
  labs(title = "Force du vent moyenne vs Surface brûlée",
       x = "Force du vent moyenne (km/h)",
       y = "Surface parcourue (m²)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

cor.test(data$Force_vent_med, data$surface_parcourue_m2, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Force_vent_med and data$surface_parcourue_m2
## t = 1.0874, df = 1200, p-value = 0.2771
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.02521285  0.08776120
## sample estimates:
##        cor 
## 0.03137438

Le diagramme « Force moyenne du vent vs Superficie brûlée » ainsi que les conclusions du test de corrélation de Pearson offrent la possibilité d’analyser le lien entre la vitesse moyenne du vent (Force_vent_med, en km/h) et l’aire touchée par les feux (surface_parcourue_m2). Le coefficient de corrélation de Pearson calculé est de 0,0314, révélant une faible corrélation positive entre ces deux variables.

La p-valeur de 0,2771, largement supérieure à la barre des 0,05, indique que cette corrélation ne possède pas de signification statistique. Par ailleurs, l’intervalle de confiance de 95% qui s’étend de -0,0252 à 0,0878 inclut le chiffre zéro, ce qui souligne le manque d’une relation marquante dans cet échantillon comportant 1202 observations.

Ce diagramme montre cette relation faible, avec des points bleus dispersés qui se concentrent généralement entre 2 et 6 km/h pour la force du vent, et des zones incendiées principalement en deçà de 250 000 m², même si quelques feux ont touché jusqu’à 1 000 000 m² à des vitesses de vent diverses.

La ligne de régression linéaire, légèrement inclinée vers le haut, illustre la faible corrélation positive. Cependant, l’importante dispersion des points suggère que la puissance du vent ne justifie qu’une petite portion de la fluctuation des zones incendiées.

Corrélation entre la Tension de vapeur (humidité) vs Surface brûlée

data <- read.csv("../Exports/export_incendies_meteo.csv", sep = ",", stringsAsFactors = FALSE)
ggplot(data, aes(x = Tens_vap_med, y = surface_parcourue_m2)) +
  geom_point(alpha = 0.5, color = "darkgreen") +
  geom_smooth(method = "lm", se = TRUE, color = "black") +
  labs(title = "Tension de vapeur moyenne vs Surface brûlée",
       x = "Tension de vapeur moyenne (hPa)",
       y = "Surface parcourue (m²)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

cor.test(data$Tens_vap_med, data$surface_parcourue_m2, method = "pearson")
## 
##  Pearson's product-moment correlation
## 
## data:  data$Tens_vap_med and data$surface_parcourue_m2
## t = -0.73262, df = 1200, p-value = 0.4639
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.07759395  0.03544066
## sample estimates:
##         cor 
## -0.02114422

L’illustration « Tension de vapeur moyenne vs Surface brûlée » ainsi que les résultats du test de corrélation de Pearson offrent la possibilité d’examiner le lien entre la tension de vapeur moyenne (Tens_vap_med, en hPa, représentant un indice d’humidité) et la superficie affectée par les incendies (surface_parcourue_m2).

Le coefficient de corrélation de Pearson calculé est de -0,0211, signalant une très faible corrélation négative entre ces deux variables.

Avec une p-valeur de 0,4639 qui dépasse largement le seuil critique de 0,05, il est évident que cette corrélation ne présente pas de signification statistique. De plus, l’intervalle de confiance à 95 % s’étend de -0,0776 à 0,0354 et renferme la valeur 0, ce qui indique qu’il n’y a pas de lien significatif dans cet ensemble de données comportant 1202 observations.

Le graphique met en évidence cette liaison pratiquement absente, avec des points verts éparpillés, principalement regroupés entre 5 et 15 hPa pour la pression de vapeur, et des zones incendiées principalement inférieures à 250 000 m², même si quelques feux parviennent à un million de m² sous diverses humidités.

La tendance linéaire légèrement descendante indique une corrélation négative faible, suggérant qu’un taux d’humidité plus bas (tension de vapeur inférieure) pourrait être lié à des zones brûlées légèrement plus vastes.

Cependant, l’importante dispersion des valeurs démontre que la tension de vapeur n’explique pratiquement aucune fluctuation des surfaces brûlées.

Ces observations indiquent que, même si des conditions plus arides pourraient potentiellement augmenter le risque d’incendie en rendant la végétation plus susceptible de brûler, cet impact semble ici minime, probablement supplanté par des éléments d’origine humaine (85% des causes principales attribuées à « Malveillance » et « Involontaire ») ou d’autres facteurs climatiques comme le vent ou la chaleur.

  1. Corrélation entre les variable météo et la surface parcourue:
library(GGally)
## Warning: package 'GGally' was built under R version 4.4.3
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
df_meteo <- data %>%
  select(Force_vent_med, Tmax_med, Tens_vap_med, surface_parcourue_m2)
ggpairs(df_meteo,
        title = "Corrélations entre variables météo et surface brûlée")

Analyse Informatique:

La bibliothèque GGally est exploitée en R pour examiner les liens entre les conditions météorologiques et la superficie affectée par les incendies à l’aide d’une matrice de corrélation visuelle. Au départ, le jeu de données est épuré à l’aide de dplyr afin de garder uniquement les variables pertinentes : Force_vent_med (moyenne du vent en km/h), Tmax_med (moyenne de la température maximale en °C), Tens_vap_med (moyenne de la tension de vapeur en hPa, un indice d’humidité) et surface_parcourue_m2 (superficie brûlée en m²).

Cette sélection, conservée dans df_meteo, facilite l’analyse des relations entre ces variables météorologiques et la magnitude des incendies.

La fonction ggpairs de GGally crée une matrice de corrélation graphique, nommée « Corrélations entre variables météo et surface brûlée ».

Cette matrice intègre divers aspects : des diagrammes de dispersion pour représenter les relations bivariées entre chaque duo de variables, des histogrammes ou des courbes de densité pour illustrer la répartition de chaque variable sur la diagonale, et des coefficients de corrélation (sans doute celui de Pearson) pour mesurer les liaisons linéaires.

L’outil ggpairs est très efficace car il fournit une perspective globale des relations interconnectées, ce qui permet non seulement de déceler les corrélations entre les variables météorologiques et la superficie brûlée, mais également de repérer les corrélations existantes entre ces mêmes variables météorologiques, telles que celles entre la température et l’humidité.

Analyse Statistique:

L’analyse visuelle appelée « Corrélations entre variables météo et surface brûlée » examine les liens entre la moyenne du vent (Force_vent_med), la moyenne de la température maximale (Tmax_med), la moyenne de la tension de vapeur (Tens_vap_med) et l’étendue des terrains affectés par les incendies (surface_parcourue_m2).

Les indices de corrélation de Pearson indiquent que le lien entre les paramètres météorologiques et la superficie brûlée est faible : le coefficient de corrélation entre Force_vent_med et surface_parcourue_m2 est de 0,031, celui entre Tmax_med et surface_parcourue_m2 est de 0,010, tandis que celui entre Tens_vap_med et surface_parcourue_m2 se chiffre à -0,021.

Ces résultats proches de zéro témoignent d’une absence de lien notable, corroborant les études antérieures où aucune corrélation pertinente n’a pu être identifiée (des p-valeurs élevées : 0,2771, 0,7202 et 0,4639 respectivement).

Des corrélations plus prononcées apparaissent lorsque l’on examine les variables météorologiques : Tmax_med et Tens_vap_med montrent une forte corrélation positive de 0,856, illustrant le lien attendu où des températures supérieures vont généralement de pair avec un niveau d’humidité accru.

Toutefois, Force_vent_med présente une légère corrélation négative avec Tmax_med (-0,037) et Tens_vap_med (-0,021), mais une corrélation positive avec Tmax_med à 0,104. Néanmoins, ces associations demeurent faibles.

Les diagrammes de dispersion illustrent clairement la grande variabilité des données concernant la surface parcourue en m², où la majorité des surfaces brûlées se situent en dessous de 250 000 m², même si certaines atteignent jusqu’à 1 000 000 m².

Par ailleurs, les densités indiquent des distributions asymétriques pour toutes les variables, avec une concentration marquée de surface_parcourue_m2 autour de petites valeurs.

Ces observations indiquent que les conditions météorologiques à elles seules influencent peu la superficie brûlée, celle-ci étant probablement prédominée par des éléments humains (85% des causes majeures associées à « Malveillance » et « Involontaire »).

  1. La distribution de la surface brûlée selon des seuils météo
data <- read.csv("../Exports/export_incendies_meteo.csv", sep = ",", stringsAsFactors = FALSE)
data <- data %>%
  mutate(temp_elevee = ifelse(Tmax_med > quantile(Tmax_med, 0.75, na.rm = TRUE), "Élevée", "Normale"))

ggplot(data, aes(x = temp_elevee, y = surface_parcourue_m2, fill = temp_elevee)) +
  geom_boxplot() +
  scale_y_log10() +  # si les surfaces sont très dispersées
  labs(title = "Impact de la température élevée sur la surface brûlée",
       x = "Température maximale (catégorisée)",
       y = "Surface parcourue (m²)") +
  theme_minimal() +
  scale_fill_manual(values = c("Élevée" = "red", "Normale" = "lightblue"))

Analyse Informatique:

En utilisant le package dplyr, une nouvelle colonne nommée temp_elevee est ajoutée au jeu de données data via la fonction mutate : elle attribue le statut « Élevée » aux températures maximales moyennes (Tmax_med) qui excèdent le 75ème percentile (calculé avec quantile(Tmax_med, 0.75, na.rm = TRUE)), et « Normale » dans le cas contraire, en négligeant les valeurs manquantes grâce à na.rm = TRUE.

Cette classification facilite la comparaison entre les incendies qui se produisent sous des conditions de températures extrêmes et ceux dans des conditions plus tempérées.

Par la suite, un diagramme en boîte est créé à l’aide de ggplot2 grâce à geom_boxplot, comparant la surface incendiée (surface_parcourue_m2) entre les deux catégories de température (temp_elevee).

L’échelle de l’axe des y est convertie en échelle logarithmique grâce à scale_y_log10() afin de mieux gérer la possible dispersion des surfaces incendiées, qui peuvent fluctuer sur plusieurs ordres de grandeur.

Le diagramme, dénommé « Impact de la température élevée sur la surface brûlée », se sert de nuances distinctes pour chaque catégorie (rouge pour « Élevée » et bleu clair pour « Normale ») définies grâce à scale_fill_manual.

Il adopte également une présentation épurée via theme_minimal() pour une meilleure lisibilité.

Cette approche informatique permet de visualiser les différences dans la distribution des surfaces brûlées selon les niveaux de température, en mettant en évidence les médianes, les quartiles et les valeurs aberrantes, tout en facilitant l’interprétation grâce à l’échelle logarithmique et aux couleurs contrastées.

Analyse Statistique:

Le diagramme offre une étude comparative de l’influence des températures hautes sur l’étendue des zones incendiées.

On note que les zones touchées par l’incendie sont exprimées en mètres carrés et présentées sur une échelle logarithmique, indiquant une forte variabilité dans les informations.

Les chiffres mentionnés représentent une superficie de 100 000 m² (1e+05) et 300 000 m² (3e+05), ce qui illustre que les incendies peuvent embraser des terrains de grande envergure.

Une analyse comparative des températures « Élevée » et « Normale » démontre une tendance manifeste : les phases de forte chaleur apparaissent corrélées à des zones plus étendues brûlées.

Même si le graphique ne donne pas de chiffres précis pour chaque catégorie, l’emplacement relatif des boîtes à moustaches suggère que les températures élevées sont souvent associées à des incendies plus dévastateurs en termes de superficie touchée.

Cette constatation met en évidence le rôle crucial des conditions météorologiques, notamment des vagues de chaleur, dans l’étendue des feux.

Une analyse statistique approfondie, intégrant des tests de signification (tels qu’un test t ou une ANOVA), pourrait déterminer si cette divergence entre les groupes est significative sur le plan statistique.

En outre, l’emploi d’une échelle logarithmique indique que les données pourraient être fortement asymétriques, ce qui signifierait que quelques incendies de grande envergure ont une influence majeure sur la moyenne.

Pour résumer, ce graphique illustre un lien inquiétant entre l’accroissement des températures et la hausse des zones incendiées, phénomène qui pourrait avoir des répercussions significatives sur la gestion des risques d’incendie dans un contexte de réchauffement global.

  1. Surface brûle selon la Condition Meteo
library(ggplot2)
data <- read.csv("../Exports/export_incendies_meteo.csv", sep = ",", stringsAsFactors = FALSE)
ggplot(data, aes(x = Force_vent_med, y = Tens_vap_med, color = Tmax_med, size = surface_parcourue_m2)) +
  geom_point(alpha = 0.7) +
  scale_color_gradient(low = "blue", high = "red") +
  labs(title = "Surface brûlée selon conditions météo",
       x = "Force du vent moyenne",
       y = "Tension de vapeur moyenne",
       color = "Température max",
       size = "Surface brûlée (m²)") +
  theme_minimal()

Analyse Informatique:

L’utilisation de ggplot2 pour créer le diagramme facilite l’examen visuel des liens complexes entre diverses variables météorologiques et la surface affectée par les incendies.

L’illustration s’appuie sur quatre dimensions de données : la puissance du vent en axe des x, la pression de vapeur en axe des y, la température maximale grâce à un code couleur, et la superficie ravagée par la grandeur des points.

Cette représentation multivariée met en évidence des tendances intéressantes concernant les conditions favorables aux grands feux de forêt.

L’observation visuelle indique que les feux les plus étendus (points de taille supérieure) ont plutôt tendance à se déclencher lorsque plusieurs facteurs sont réunis : des températures élevées (indiquées par les points rouges), un certain niveau de vent, et une pression de vapeur spécifique.

L’arrangement des points indique que les incendies de grande envergure ne surviennent pas de manière aléatoire, mais semblent liés à des associations spécifiques de facteurs météorologiques.

L’indice de transparence des points (alpha=0.7) facilite l’identification des régions où les incendies sont courants, mettant ainsi en lumière les zones climatiques dites de « points chauds ».

Cette représentation souligne l’importance des interactions entre divers éléments météorologiques.

On peut, par exemple, constater que des températures extrêmement hautes (rouge vif) ne provoquent pas nécessairement de vastes incendies si la vitesse du vent ou le taux d’humidité (pression de vapeur) n’est pas dans une zone critique.

Analyse Statistique:

L’examen statistique du diagramme « Surface brûlée en fonction des conditions météorologiques » fournit une vision approfondie des liens entre diverses variables météorologiques et leur influence sur les feux de forêt.

Le graphique illustre la force moyenne du vent, qui peut varier de 0 à 10 (sans doute en km/h ou une unité équivalente), et la pression moyenne de vapeur, qui peut aller de 0 à 25 hPa, un indicateur lié à l’humidité atmosphérique.

La dimension des points dépeint la zone brûlée, variant de 250 000 à 1 000 000 m², alors que leur couleur indique la température maximale, oscillant entre 10 et 30°C, avec une transition du bleu (plus frais) au rouge (plus chaud).

L’analyse de la répartition des données révèle que la plupart des mesures de force du vent se situent entre 2,5 et 7,5, avec quelques valeurs limites proches de 0 et 10. Quant à la pression de vapeur, elle se trouve majoritairement dans l’intervalle de 5 à 15 hPa, bien qu’il existe aussi quelques occurrences au-delà de 20 hPa.

Les plus grandes surfaces enflammées, symbolisées par les points de grande taille, se manifestent fréquemment dans des situations de vent modéré, autour de 5 à 7,5, et sous des tensions de vapeur intermédiaires, entre 10 et 15 hPa, ce qui laisse penser que ces circonstances pourraient encourager l’expansion des feux.

En ce qui concerne la superficie incendiée, on observe souvent une corrélation avec des températures élevées, variant de 20 à 30°C. Cependant, il y a des cas où de grandes surfaces brûlent à des températures plus faibles.

5.3.2.5 Effet des radiations solaires sur les incendies
library(ggplot2)
data <- read.csv("../Exports/export_incendies_meteo.csv")
ggplot(data, aes(x = Rayonnement_med, y = surface_parcourue_m2)) +
  geom_point(color = "darkorange", alpha = 0.7) +  # Nuage de points
  geom_smooth(method = "lm", color = "steelblue", se = TRUE) +  # Régression linéaire
  labs(
    title = "Impact du rayonnement solaire sur les surfaces brûlées",
    x = "Rayonnement solaire moyen (W/m²)",
    y = "Surface parcourue par les incendies (m²)"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

cor.test(data$Rayonnement_med, data$surface_parcourue_m2)
## 
##  Pearson's product-moment correlation
## 
## data:  data$Rayonnement_med and data$surface_parcourue_m2
## t = -1.8286, df = 1200, p-value = 0.0677
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.108932530  0.003839235
## sample estimates:
##         cor 
## -0.05271471

Analyse Informatique:

Notre programme s’appuie sur la bibliothèque ggplot2, un outil efficace pour la représentation graphique des données dans l’environnement R.

On débute par l’importation de cette bibliothèque, essentielle pour exploiter la grammaire des graphiques conçue par Hadley Wickham.

Elle offre la possibilité de créer des visualisations en juxtaposant diverses strates d’éléments graphiques.

La première phase du code implique la définition des données que l’on désire représenter visuellement via la fonction ggplot().

Dans cette situation, nous employons un tableau appelé data, où la variable Rayonnement_med doit être représentée sur l’axe horizontal (x), alors que surface_parcourue_m2 est placée sur l’axe vertical (y).

Ces deux paramètres correspondent respectivement à l’ensoleillement moyen et à la superficie ravagée lors d’un feu de forêt.

Par la suite, une première couche graphique est incorporée en utilisant la fonction geom_point(). Cette commande génère un diagramme de dispersion, où chaque point symbolise une observation.

On a sélectionné l’orange profond (darkorange) comme couleur pour les points, et une transparence (alpha = 0.7) est appliquée afin d’améliorer la visualisation lorsque les points sont adjacents ou se superposent.

La fonction geom_smooth() est utilisée pour incorporer une courbe de régression linéaire dans la couche suivante.

La spécification du paramètre method = “lm” signifie que nous utilisons un modèle de régression linéaire simple.

Cette courbe bleue, qui se superpose aux points, illustre la tendance globale présente dans les données.

L’activation de l’option se = TRUE génère une zone d’incertitude, nommée intervalle de confiance, autour de la courbe qui reflète la précision de l’estimation du modèle.

Par la suite, la fonction labs() est utilisée pour personnaliser les éléments textuels.

Cette dernière intègre un titre au graphique et des libellés clairs pour les axes, éléments cruciaux à la compréhension des résultats, surtout dans le cadre d’un rapport ou d’une publication.

Pour conclure, le thème graphique est spécifié par la fonction theme_minimal(), conférant au graphique un aspect minimaliste.

Ce thème élimine les éléments graphiques superflus (tels que les bordures ou les arrière-plans colorés) pour se focaliser exclusivement sur les données et les axes, ce qui optimise la clarté et l’aspect professionnel du graphique.

Analyse Statistique:

Le diagramme illustre le lien entre l’irradiation solaire moyenne (exprimée en W/m², sur l’axe des X) et la zone affectée par les feux (en m², sur l’axe des Y).

On note une importante éparpillement des points, avec un regroupement marqué des données autour de rayonnements solaires entre 10 000 et 15 000 W/m², et des surfaces principalement inférieures à 250 000 m².

Certains points atypiques indiquent des surfaces couvertes très importantes (jusqu’à 1 000 000 m²), même avec de faibles niveaux de radiation solaire (environ 0 W/m²).

Une ligne de régression linéaire est dessinée, présentant une inclinaison légèrement négative, indiquant un lien inverse faible entre l’exposition au soleil et la superficie affectée par les incendies.

L’espace ombragé autour de la ligne représente l’intervalle de confiance, qui est relativement vaste, suggérant une incertitude dans la relation estimée.

Les résultats statistiques fournis confirment cette observation :

Corrélation coefficientielle (cor) : -0,0527. Ce coefficient près de 0 révèle une faible corrélation entre le rayonnement solaire moyen et la superficie affectée par les incendies. Un nombre négatif indique un lien inverse, cependant l’ampleur est insignifiante.

Test de signifiance (t = -1.8286, df = 1200, p-value = 0.0677):La valeur p dépasse légèrement le seuil conventionnel de 0,05 (5 %).Cela implique que nous ne sommes pas en mesure de rejeter l’hypothèse nulle (absence de corrélation) avec un niveau de confiance de 95 %.Autrement dit, la corrélation détectée ne revêt pas de signification statistique à ce niveau.

Confiance à 95 % : l’intervalle est [-0.1089, 0.0038].Cet intervalle comprend 0, ce qui soutient l’hypothèse que la corrélation pourrait être nulle.Le plafond (0.0038) est quasiment à 0, ce qui confirme que toute corrélation présente, si elle est avérée, reste très faible.

L’analyse statistique révèle qu’aucun lien linéaire notable n’existe entre l’intensité moyenne du rayonnement solaire et la superficie affectée par les feux de forêt.

Cela indique que le rayonnement solaire, comme il est quantifié ici, n’est pas un élément directement décisif pour la magnitude des incendies dans cet ensemble de données.

5.3.2.6 Température et nombre d’incendies par période de la journée

Pour pouvoir analyser notre problemarique qui se concerne sur la temperature et le nombre des incendies par periode journee on va diviser notre problematique en des sous problematiques:

  • Relation entre la température maximale quotidienne et le nombre d’incendies
  • Impact combiné de la température et de l’heure de la journée sur les incendies
  • Seuils de température critique pour l’émergence des incendies

1- Relation entre la température maximale quotidienne et le nombre d’incendies:

library(ggplot2)
library(dplyr)
agg_data <- read.csv("../Exports/export_incendiestempheure.csv")

# Calculer le nombre d'incendies par jour (regroupement par an, mois, jour)
agg_data_daily <- agg_data %>%
  group_by(annee, mois, jour) %>%
  summarise(nb_incendies = n(),   # Nombre d'incendies par jour
            tmax_med = mean(tmax_med, na.rm = TRUE))   # Température maximale moyenne par jour
## `summarise()` has grouped output by 'annee', 'mois'. You can override using the
## `.groups` argument.
# Créer un graphique en nuage de points avec ggplot2
ggplot(agg_data_daily, aes(x = tmax_med, y = nb_incendies)) +
  geom_point(color = "#1f77b4", size = 3, alpha = 0.7) +  # Points de données (couleur et opacité ajustées)
  geom_smooth(method = "lm", color = "red", se = FALSE, linetype = "dashed", size = 1.2) +  # Ligne de régression (ajout de type de ligne et taille)
  labs(
    title = "Relation entre la température maximale quotidienne et le nombre d'incendies",
    subtitle = "Analyse de la température maximale (°C) et des incendies par jour",
    x = "Température Maximale Quotidienne (°C)",
    y = "Nombre d'Incendies",
    caption = "Source: Données d'incendies et température"
  ) +
  theme_minimal(base_size = 14) +  # Thème minimal avec taille de base augmentée pour meilleure lisibilité
  theme(
    plot.title = element_text(hjust = 0.5, size = 18, face = "bold"),  # Centrer et formater le titre
    plot.subtitle = element_text(hjust = 0.5, size = 12),               # Centrer et formater le sous-titre
    axis.title = element_text(size = 14),                                # Taille des titres des axes
    axis.text = element_text(size = 12),                                 # Taille des labels des axes
    plot.caption = element_text(size = 10, hjust = 1)                    # Taille et alignement de la légende
  )
## `geom_smooth()` using formula = 'y ~ x'

Analyse Informatique

Pour réaliser notre graphique, nous avons eu recours à deux bibliothèques : la bibliothèque ggplot2, qui nous offre la possibilité de créer des représentations graphiques en utilisant le langage R, et dplyr.Cette bibliothèque est intégrée au tidyverse, facilitant une manipulation efficace des données.Elle offre la possibilité de sélectionner, filtrer, grouper et résumer les données de manière performante.

Par la suite, nous utilisons la méthode read.csv pour charger les données contenues dans le fichier CSV dans une variable nommée agg_data.

Par la suite, on effectue les statistiques journalières %>% en utilisant l’opérateur pipe de la bibliothèque dplyr, ce qui nous permet d’enchaîner plusieurs opérations. Ensuite, nous utilisons la fonction groupby() qui nous autorise à regrouper les données par année, mois et jour.

Ceci nous autorisera à effectuer des calculs statistiques sur une base quotidienne. En outre, la technique summarise nous offre la possibilité d’effectuer des résumés statistiques grâce à l’utilisation de la méthode n(), qui permet de déterminer le nombre d’incendies par jour en comptant le nombre d’observations pour chaque groupe, soit ici, chaque jour.

En outre, on fait appel à la technique mean pour déterminer la température maximale moyenne quotidienne en omettant les valeurs absentes grâce à na.rm = True.

Après avoir effectué le calcul des statistiques journalières, nous créons le graphique en employant la fonction ggplot() de la librairie ggplot2.

Nous l’élaborons en utilisant les données regroupées de la variable contenant les informations. Grâce à la méthode aes(), nous définissons les axes.

Par la suite, nous matérialisons les points de données sous forme de nuages de points grâce à l’usage du procédé geom_point().

Après l’utilisation de geom_smooth(), on superpose à ce graphique une ligne de régression linéaire pour mettre en évidence le lien entre la température et le nombre d’incendies, en précisant l’option method=“lm” pour indiquer la méthode utilisée afin d’ajouter une régression linéaire.

La fonction labs() est employée pour définir les titres des axes, tandis que theme_minimal() est utilisée pour appliquer un style minimaliste.

Analyse Statistique:

On précise que l’axe horizontal indique la température maximale variant de 0 à 35 degrés et l’axe vertical dénote le nombre d’incendies oscillant entre 0 et 7,5.

Par ailleurs, on note que les points bleus symbolisent les observations.

En d’autres termes, chaque point représente un jour avec une température maximale spécifique et un nombre précis d’incendies.

Dans une échelle de 0 à 7,5, on détermine que les points bleus illustrent les observations. En d’autres termes, chaque point correspond à un jour donné avec une température maximale spécifique et un nombre déterminé d’incendies.

Il s’agit probablement d’une régression qui trace la relation moyenne entre la température et le nombre d’incendies.

Bien que les points soient éparpillés, on remarque une concentration plus importante de données entre 15 et 25 degrés, avec une prédominance d’incendies se situant généralement entre 0 et 3

On note des températures plus extrêmes, mais les données sont moins abondantes.

Dans notre graphique, la courbe rouge indique une corrélation non linéaire entre la température maximale et le nombre d’incendies.

De zéro à environ quinze, le nombre d’incendies paraît légèrement en hausse, mais il reste faible, oscillant entre 1 et 2 par jour en moyenne.

Entre 15 et 25, la courbe connaît un sommet avec une moyenne de 2 à 3 incendies.

C’est dans cette fourchette de températures que l’on observe le plus grand nombre d’incendies.

Au-delà de 25 degrés, la courbe diminue progressivement, signalant une réduction du nombre moyen d’incendies lorsque les températures excèdent 25 degrés.

La dispersion des points autour de la courbe de régression indique une variabilité importante, comme on peut le voir dans notre graphique où à 20 degrés le nombre d’incendies fluctue entre 0 et 5.

Cette fluctuation indique que la température seule ne peut rendre compte du nombre d’incendies.

Le lien constaté est en accord avec nos connaissances sur les feux de forêt : des températures plutôt élevées (15-25 °C) peuvent contribuer à l’éclosion de ces derniers en déshydratant la végétation, particulièrement si elles sont associées à une faible humidité ou à des vents.

Toutefois, dans des conditions de chaleur extrême (supérieure à 25 °C), d’autres paramètres tels qu’une diminution de l’humidité ou des actions préventives (interdiction de feux, vigilance renforcée) pourraient faire baisser le nombre d’incendies.

Il est compréhensible que le nombre d’incendies à des températures extrêmement basses (proches de 0 °C) soit réduit, étant donné que les conditions ne favorisent pas la dissémination des flammes (végétation humide, gel, etc.).

2- Impact combiné de la température et de l’heure de la journée sur les incendies

library(ggplot2)
library(dplyr)
agg_data <- read.csv("../Exports/export_incendiestempheure.csv")

# Aggréger les données pour obtenir le nombre d'incendies, la température et l'heure
agg_data_combined <- agg_data %>%
  group_by(annee, mois, jour, heure) %>%
  summarise(
    nb_incendies = n(),
    tmax_med = mean(tmax_med, na.rm = TRUE)
  )
## `summarise()` has grouped output by 'annee', 'mois', 'jour'. You can override
## using the `.groups` argument.
# Créer un graphique de chaleur (heatmap) pour l'impact combiné de la température et de l'heure
ggplot(agg_data_combined, aes(x = tmax_med, y = heure, fill = nb_incendies)) +
  geom_tile() +  # Créer une carte de chaleur (tiles)
  scale_fill_gradient(low = "white", high = "red") +  # Définir les couleurs de la carte de chaleur
  labs(
    title = "Impact combiné de la température maximale et de l'heure sur les incendies",
    x = "Température Maximale Quotidienne (°C)",
    y = "Heure de la Journée",
    fill = "Nombre d'Incendies"
  ) +
  theme_minimal(base_size = 14) +  # Appliquer un thème minimal
  theme(
    plot.title = element_text(hjust = 0.5, size = 18, face = "bold"),  # Centrer et formater le titre
    axis.title = element_text(size = 14),                               # Taille des titres des axes
    axis.text = element_text(size = 12),                                # Taille des labels des axes
    plot.caption = element_text(size = 10, hjust = 1)                   # Taille et alignement de la légende
  )

Analyse Informatique:

Pour réaliser ce diagramme, deux bibliothèques majeures ont été employées, à savoir ggplot2 et dplyr. Les données ont été importées à l’aide d’un DataFrame, puis nous avons consolidé ces données en utilisant l’opérateur pipe, qui nous permet d’enchaîner les opérations de manière claire et cohérente.

Par la suite, nous les organisons en utilisant la méthode group_by(), ce qui nous permettra de les réagencer par année, mois, jour et heure.

Cela nous donnera la possibilité de calculer des statistiques spécifiques pour chaque combinaison de ces périodes.

On a également employé la méthode summarise et la fonction n() pour déterminer le nombre d’incendies pour chaque combinaison d’année, mois, jour et heure.

Cette technique va dénombrer les éléments présents dans chaque groupe. Par la suite, on détermine la température moyenne maximale pour chaque groupe sur une base quotidienne et horaire.

L’argument na.Rm = True nous autorise à faire abstraction des valeurs absentes lors de la réalisation du calcul.

Par la suite, on procède à l’élaboration du graphique en employant la méthode ggplot() qui permettra de le réaliser en se basant sur les données agrégées. On spécifie les variables à représenter sur les deux axes grâce à la méthode aes().

Suite à cela, geom_title() nous offre la possibilité de construire la carte où chaque cellule représente une combinaison d’heure et de température.

Chaque case comportant un grand nombre d’incendies sera teintée en rouge.

Suite à cela, la méthode scale_fill_gradient nous autorisera à établir une palette de couleurs employée dans le diagramme de chaleur.

Les tuiles avec un faible nombre d’incendies seront en couleur blanche pour indiquer une faible occurrence d’incendies, tandis que celles avec un nombre élevé d’incendies seront en rouge.

La fonction labs() est employée pour définir les titres des axes, tandis que theme_minimal() est utilisée pour appliquer un style minimaliste.

Analyse Statistique:

En observant ce graphique, on détermine la température maximale de chaque jour à l’aide de l’axe horizontal, tandis que l’axe vertical indique l’heure de la journée.

Les points dépeignent les incendies avec une couleur qui indique le volume des incendies en fonction de l’échelle chromatique.

Notre gamme de couleurs va du rose clair 1.0 au rouge sombre 3.0.

Ainsi, chaque point représente un incendie qui s’est produit à une température maximale et à un moment précis, avec une intensité (indiquée par la couleur) correspondant au nombre d’incendies.

Bien que les points sur le graphique soient éparpillés, on remarque une densité plus importante dans certaines zones. La plupart des incendies se regroupent entre 15 et 25, ce qui a du sens. On peut également noter que les incendidés ont tendance à se déclencher surtout entre 10 et 18 heures, avec un pic visible autour de midi à seize heures.

On constate très peu de points hors de ces plages, par exemple, il y a rarement des incendies avant 5h ou après 18h, et très peu à des températures inférieures à 10 ou supérieures à 30 degrés.

Les incendies se produisent généralement en milieu de journée, entre 10 et 18 heures, avec une intensification autour de midi à 16 heures. Cela s’explique par divers facteurs tels que des températures élevées en cours de journée, une activité humaine plus importante (comme des brûlages déclenchés volontairement ou accidentellement) ou des conditions climatiques spécifiques (vent fort, humidité faible) qui favorisent la propagation des incendies pendant ces plages horaires.

Il est constaté qu’il y a très peu d’incendies signalés tôt le matin ou en soirée, ce qui pourrait être attribué à des températures plus fraîches, une humidité accrue ou éventuellement une activité réduite.

Les zones les plus sombres semblent surtout se situer entre 15 et 25 degrés, et entre midi et seize heures, ce qui indique que les conditions dans ce créneau horaire et cette plage de température sont particulièrement défavorables pour la survenue d’incendies.

Les points les plus distincts sont davantage dispersés, mais on en observe plus hors de ces plages critiques de température et d’heure.

Il est observé qu’il existe une corrélation entre la température maximale et le moment de la journée dans l’apparition des feux. La plupart des incendies ont lieu lorsque la température est modérément élevée, entre 15 et 25 degrés, en milieu de journée.

Cela indique que l’accroissement de ces deux éléments accroît le danger des incendies.

L’éparpillement des points indique une variation dans le nombre d’incendies, même au sein des créneaux horaires et des plages de température les plus critiques.

Température : Il a été confirmé que la fourchette de 15 °C à 25 °C est celle qui favorise le plus les incendies, probablement à cause de conditions sèches et chaudes qui stimulent l’inflammation de la végétation.

Le pic des incendies entre midi et seize heures est associé aux facteurs suivants :

  • Les températures les plus élevées sont fréquemment enregistrées en début d’après-midi, ce qui contribue à la dessiccation de la végétation.
  • L’activité humaine (comme les feux de camp, les barbecues ou les mégots de cigarettes mal éteints) est plus courante à ces moments-là.
  • Les conditions climatiques (comme le vent ou une humidité faible) peuvent favoriser la diffusion des feux en plein jour.

Les régions affichant le plus grand nombre d’incendies (indiquées par des points rouges foncés) sont celles où les conditions sont les plus critiques, ce qui pourrait orienter les actions de prévention (par exemple, imposer des interdictions de feux de plein air entre midi et 16h lorsque la température excède 15 °C).

3- Seuils de température critique pour l’émergence des incendies:

library(ggplot2)
library(dplyr)

# Charger les données
agg_data <- read.csv("../Exports/export_incendiestempheure.csv")

# Créer des classes de température (par ex. tous les 2°C)
agg_data_bins <- agg_data %>%
  mutate(
    tmax_bin = cut(tmax_med, breaks = seq(0, max(tmax_med, na.rm = TRUE) + 2, by = 2), right = FALSE)
  ) %>%
  group_by(tmax_bin) %>%
  summarise(nb_incendies = n())

# Visualiser : Histogramme des incendies par classe de température
ggplot(agg_data_bins, aes(x = tmax_bin, y = nb_incendies)) +
  geom_col(fill = "#FF5733", alpha = 0.8) +
  geom_vline(xintercept = which(agg_data_bins$nb_incendies == max(agg_data_bins$nb_incendies)), 
             linetype = "dashed", color = "blue", size = 1) +
  labs(
    title = "Seuils de température critique pour l'émergence des incendies",
    x = "Température maximale quotidienne (par classes de 2°C)",
    y = "Nombre total d'incendies",
    caption = "Source: Données incendies et température"
  ) +
  theme_minimal(base_size = 14) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_text(angle = 45, hjust = 1)
  )

Analyse Informatique

D’abord, on importe les deux bibliothèques indispensables : dplyr pour le traitement des données et l’agrégation, et ggplot2 pour la représentation graphique de ces dernières.

Par la suite, les données sont importées dans une dataframe.

Nous passons ensuite à l’étape de création de classes de température en utilisant la méthode cut() qui nous permet de segmenter la variable tmax_med en intervalles de 2 degrés, comme par exemple entre 0 et 2 degrés, entre 2 et 4 degrés.

En outre, seq(0 , max()) nous aidera à établir les limites des classes, allant de 0 jusqu’à la température maximale enregistrée augmentée de 2 degrés.

Ensuite, nous regroupons les données par catégorie de température en employant la méthode group_by(tmax_bin). Par la suite, nous employons summarise(nb_incendies=n()) afin de déterminer le nombre total d’incendies pour chaque catégorie de température.

Une fois les données prêtes, nous devons passer à la phase de visualisation de l’histogramme des incendies en fonction des classes de température.

Pour ce faire, nous utilisons la méthode ggplot().

Nous construisons un histogramme à barres verticales où chaque barre illustre le nombre d’incendies pour une classe de température donnée en utilisant la technique geom_col().

On choisit l’option de remplissage pour assembler les barres.

On insère une ligne verticale en pointillés bleus dénotant la classe ou le nombre d’incendies est au maximum, en employant la fonction prédéfinie geom_vline().

Ensuite, nous utilisons la méthode prédéfinie labs(), où nous ajoutons un titre, les libellés des axes et une référence pour le graphique.

On utilise theme_minimal() pour donner un aspect sobre et professionnel, et l’on incline les labels de l’axe des X à 45 degrés pour améliorer la clarté en mettant en œuvre la méthode element_text().

Analyse Statistique

Ce graphique vise à nous aider à analyser et à illustrer la distribution des températures maximales journalières, exprimées en degrés Celsius, liées à des incendies.

L’axe des abscisses illustre les températures maximales journalières réparties en catégories de 2 degrés.

L’axe Y indique le total des incendies recensés pour chaque catégorie de température.

Une ligne en pointillés bleus est dessinée autour de 20 degrés, probablement pour indiquer un seuil critique de température.

La distribution présente une unicité du mode et est fortement décalée vers la droite. Le maximum est observé dans la tranche 18-20 avec approximativement 500 incendies, ce qui suggère que c’est à cette température qu’un nombre optimal d’incendies se déclenche.

Sur la gauche du sommet, le nombre d’incendies commence à croître graduellement dès que l’on atteint 12 degrés. Après le pic, on observe une chute rapide du nombre d’incendies dès 20 degrés, avec très peu d’incendies au-delà de 28 degrés.

Notre gamme de températures va de 2 à 34 degrés. Toutefois, la plupart de nos incendies se produisent lorsque la température est comprise entre 12 et 26 degrés.

Il est possible d’affirmer que 80% des incendies se déclenchent lorsque la température se situe entre 16 et 22 degrés, atteignant un paroxysme à 18-20 degrés. Les classes 16-18 et 20-22 comptent aussi un nombre élevé de sinistres, approximativement 300 et 200 respectivement.

La ligne en pointillés à 20 degrés indique une limite critique pour le déclenchement des incendies :

  • Jusqu’à 20 degrés, le nombre d’incendies s’accroît avec la hausse de la température, signalant une relation positive entre la température et le danger d’incendie jusqu’à ce point critique.

  • Au-delà de 20 degrés, la fréquence des incendies chute rapidement, indiquant que des températures plus élevées ne sont pas forcément liées à un risque accru d’incendie.

On pourrait affirmer que 20 degrés représente un seuil critique, où les incendies sont particulièrement courants juste avant et à ce point, mais tendent à diminuer au-delà.

Il est probable que la moyenne se situe autour de 18-20 degrés, car c’est là que le pic de la distribution est localisé.

La mediane représente la valeur qui sépare les données en deux segments égaux. La température est proche de 18 degrés.

La majorité des données se situe entre 16 et 22 degrés, comme l’indique l’écart-type. L’écart type est sans doute entre 2 et 3 degrés.

La répartition présente une asymétrie vers la droite, caractéristique des données de températures liées à des phénomènes naturels tels que les incendies.

Nous allons procéder à une interprétation en rapport avec les incendies. Les températures aux alentours de 18-20 degrés semblent être les plus déterminantes pour la naissance des feux.

Ceci peut être dû à un ensemble de facteurs tels que la chaleur adéquate pour assécher la végétation, mais également trop intense pour contrarier des conditions indispensables comme une humidité trop basse ou des vents particuliers.

Au-delà de 20 degrés, le danger diminue dans certains scénarios où la végétation devient trop sèche pour une combustion efficace ou lorsque d’autres facteurs météorologiques, comme des précipitations accompagnées de températures plus élevées, atténuent le risque.

Pour conclure sur notre question générale, nous pourrions affirmer que les incendies surviennent plus souvent lorsque la température est comprise entre 15 et 25 degrés, notamment durant l’heure de la journée où la chaleur est la plus forte, particulièrement entre 10h et 18h.

Cette fourchette de température encourage la déshydratation de la flore et crée des conditions favorables à l’expansion des incendies.

Les incendies sont moins probables à des températures très basses ou très élevées, ce qui souligne l’importance d’une surveillance renforcée et de mesures préventives pendant les heures les plus chaudes de la journée.

5.3.2.7 Relation entre la force du vent et la propagation des incendies
5.3.2.8 Impact de la pression de vapeur sur la vitesse de propagation des incendies

Dans cette problématique nous allons se concentrer sur l’impact de la pression de vapeur sur la vitesse de propagation des incendies

data <- read.csv("../Exports/export_impactvapeure.csv")

library(ggplot2)

# Créer un graphique de dispersion entre la pression de vapeur et la surface parcourue par le feu
ggplot(data, aes(x = tens_vap_med, y = surface_parcourue_m2)) +
  geom_point(color = "blue") +  # Points bleus
  geom_smooth(method = "lm", color = "red") +  # Ajouter une droite de régression linéaire
  labs(title = "Impact de la pression de vapeur sur la vitesse de propagation des incendies",
       x = "Pression de vapeur (hPa)",
       y = "Surface parcourue par le feu (m²)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

1- Analyse Informatique:

Dans un premier temps, nous avons importé la librairie ggplot2 pour réaliser notre diagramme, puis nous avons intégré nos données à l’aide d’un DataFrame et de la méthode prédéfinie read.Csv.

L’objet de données renferme toutes les informations extraites du fichier CSV.

Nous générons le graphique grâce à la librairie ggplot, en précisant le jeu de données ainsi que les variables qui seront représentées sur les axes X et Y. De plus, nous définissons les axes via le paramètre aes.

On utilise la méthode prédéfinie geom_point() pour ajouter les points sur le diagramme de dispersion. Chaque point va symboliser une observation de données.

Nous intégrons une courbe de tendance dans le graphique en employant le paramètre method=“lm” pour signaler que la courbe représentera une régression linéaire.

Et finalement, en matière de personnalisation, nous attribuons des titres aux deux axes ainsi qu’au titre principal en utilisant labs(). Pour lui donner un aspect plus contemporain, nous employons theme_minimal.

2- Analyse Statistique:

Ce graphique que nous avons est un type de diagramme de dispersion, ou plus précisément, un nuage de points (scatter plot), qui comprend une courbe de régression et une zone d’intervalle de confiance.

L’axe des abscisses indique la pression de vapeur, mesurée en hPa, variant de 0 à 25 hPa, tandis que l’axe des ordonnées représente la vitesse de propagation du feu, exprimée en mètres par seconde sur une échelle logarithmique allant de 0 à 1 000 000 m/s.

Il est à noter que les points de couleur bleue correspondent aux observations individuelles. Dans notre graphique, chaque point illustre une mesure de régression de vapeur et de vitesse de propagation.

Une tendance générale est illustrée par une ligne rouge continue, entourée d’une zone ombragée représentant l’intervalle de confiance supposé à 95%.

Les points montrent une grande dispersion, surtout à basse pression de vapeur entre 0 et 15 hPa, ce qui témoigne d’une variabilité significative dans la vitesse de propagation pour ces niveaux de pression.

Lorsque la pression de vapeur excède 15 hPa, les points se multiplient et la vitesse de diffusion semble généralement se réduire.

La plupart des points se regroupent à des vitesses de propagation inférieures à 250 000 m/s, avec quelques valeurs hors normes atteignant les 1 000 000 m/s.

L’échelle de l’axe des ordonnées est logarithmique, ce qui est courant pour des données très dispersées ou présentant une distribution déséquilibrée, comme c’est le cas ici. Cela nous aide à mettre en évidence les valeurs les plus faibles tout en intégrant les valeurs extrêmes.

Il est possible que la vitesse de propagation des incendies suive une distribution exponentielle ou même log-normale.

Le graphique de régression illustre un lien inverse entre la pression de vapeur et la vitesse de propagation. Quand la pression sur la valeur s’accroît, la vitesse de propagation tend à se réduire.

La courbe présente une inclinaison marquée initialement entre 0 et 10 hPa, puis elle se nivèle progressivement à mesure que la pression de vapeur augmente, entraînant un effet asymptotique où la vitesse de progression atteint une valeur faible pour des pressions élevées.

Pour ce qui est de l’intervalle de confiance, la zone en gris sur le graphique de régression indique cet intervalle.

L’écart se réduit à mesure que la pression de vapeur augmente, car il y a une diminution des données et la variabilité paraît moins importante.

La configuration de la courbe indique un modèle non linéaire, en d’autres termes, une régression logarithmique ou exponentielle, ce qui est en accord avec l’échelle logarithmique de l’axe Y.

Il est hypothétique qu’une transformation logarithmique de la variable dépendante, la vitesse de propagation, a été effectuée pour linéariser la relation, suivie de l’ajout d’un modèle de régression.

On observe une relation inverse entre la pression de vapeur et la vitesse de propagation des incendies. Autrement dit, une pression de vapeur plus élevée, généralement associée à une humidité accrue, tend à freiner la progression des incendies.

En termes physiques, une pression de vapeur plus élevée signale un volume d’eau accru dans l’air, ce qui pourrait diminuer la combustibilité des matériaux et freiner la progression du feu.

L’importante dispersion des points, surtout à basse pression de vapeurs, nous indique que d’autres paramètres non considérés dans ce graphique, tels que la température et le vent, ont un impact sur la vitesse de diffusion.

La courbe de régression indique une tendance décroissante statistiquement significative, puisque son intervalle de confiance ne traverse pas la ligne horizontale nulle. Cela suggère que l’impact de la pression de vapeur sur la vitesse de propagation est effectif et non fortuit.

Pour finir, ce graphique met en lumière une relation inverse manifeste entre la pression de vapeur et la vitesse de propagation des incendies : plus la pression de vapeur est forte, plus la progression des incendies est lente.

5.3.2.9 Impact des températures sur les conditions propices aux incendies
 data <- read.csv("../Exports/export_meteo.csv", header = TRUE, sep = ",")
  variables <- c("Tmin_med", "Tmax_med", "RR_med", "NBJRR1_med", "NBJRR5_med", 
                 "NBJRR10_med", "Tens_vap_med", "Force_vent_med", 
                 "Insolation_med", "Rayonnement_med")
  data_subset <- data[, variables]
  corr <- cor(data_subset, use = "complete.obs")
  print("Matrice de corrélation :")
## [1] "Matrice de corrélation :"
  round(corr, 2)
##                 Tmin_med Tmax_med RR_med NBJRR1_med NBJRR5_med NBJRR10_med
## Tmin_med            1.00     0.78  -0.25      -0.34      -0.37       -0.26
## Tmax_med            0.78     1.00  -0.26      -0.35      -0.35       -0.24
## RR_med             -0.25    -0.26   1.00       0.64       0.85        0.90
## NBJRR1_med         -0.34    -0.35   0.64       1.00       0.84        0.56
## NBJRR5_med         -0.37    -0.35   0.85       0.84       1.00        0.82
## NBJRR10_med        -0.26    -0.24   0.90       0.56       0.82        1.00
## Tens_vap_med        0.77     0.65  -0.17      -0.12      -0.21       -0.21
## Force_vent_med      0.19    -0.05  -0.13      -0.20      -0.17       -0.14
## Insolation_med      0.26     0.21  -0.21      -0.17      -0.19       -0.21
## Rayonnement_med     0.25     0.19  -0.16      -0.08      -0.13       -0.18
##                 Tens_vap_med Force_vent_med Insolation_med Rayonnement_med
## Tmin_med                0.77           0.19           0.26            0.25
## Tmax_med                0.65          -0.05           0.21            0.19
## RR_med                 -0.17          -0.13          -0.21           -0.16
## NBJRR1_med             -0.12          -0.20          -0.17           -0.08
## NBJRR5_med             -0.21          -0.17          -0.19           -0.13
## NBJRR10_med            -0.21          -0.14          -0.21           -0.18
## Tens_vap_med            1.00           0.06           0.30            0.33
## Force_vent_med          0.06           1.00           0.07            0.05
## Insolation_med          0.30           0.07           1.00            0.98
## Rayonnement_med         0.33           0.05           0.98            1.00
  par(mfrow = c(1, 1))  
  plot(data$Tmin_med, data$Rayonnement_med, 
       main = "Tmin_med vs Rayonnement_med",
       xlab = "Tmin_med (°C)", ylab = "Rayonnement_med",
       pch = 16, col = "red")
  abline(lm(Rayonnement_med ~ Tmin_med, data = data), col = "black", lwd = 2)  

 data <- read.csv("../Exports/export_meteo.csv", header = TRUE, sep = ",")
  variables <- c("Tmin_med", "Tmax_med", "RR_med", "NBJRR1_med", "NBJRR5_med", 
                 "NBJRR10_med", "Tens_vap_med", "Force_vent_med", 
                 "Insolation_med", "Rayonnement_med")
  data_subset <- data[, variables]
  corr <- cor(data_subset, use = "complete.obs")
  round(corr, 2)
##                 Tmin_med Tmax_med RR_med NBJRR1_med NBJRR5_med NBJRR10_med
## Tmin_med            1.00     0.78  -0.25      -0.34      -0.37       -0.26
## Tmax_med            0.78     1.00  -0.26      -0.35      -0.35       -0.24
## RR_med             -0.25    -0.26   1.00       0.64       0.85        0.90
## NBJRR1_med         -0.34    -0.35   0.64       1.00       0.84        0.56
## NBJRR5_med         -0.37    -0.35   0.85       0.84       1.00        0.82
## NBJRR10_med        -0.26    -0.24   0.90       0.56       0.82        1.00
## Tens_vap_med        0.77     0.65  -0.17      -0.12      -0.21       -0.21
## Force_vent_med      0.19    -0.05  -0.13      -0.20      -0.17       -0.14
## Insolation_med      0.26     0.21  -0.21      -0.17      -0.19       -0.21
## Rayonnement_med     0.25     0.19  -0.16      -0.08      -0.13       -0.18
##                 Tens_vap_med Force_vent_med Insolation_med Rayonnement_med
## Tmin_med                0.77           0.19           0.26            0.25
## Tmax_med                0.65          -0.05           0.21            0.19
## RR_med                 -0.17          -0.13          -0.21           -0.16
## NBJRR1_med             -0.12          -0.20          -0.17           -0.08
## NBJRR5_med             -0.21          -0.17          -0.19           -0.13
## NBJRR10_med            -0.21          -0.14          -0.21           -0.18
## Tens_vap_med            1.00           0.06           0.30            0.33
## Force_vent_med          0.06           1.00           0.07            0.05
## Insolation_med          0.30           0.07           1.00            0.98
## Rayonnement_med         0.33           0.05           0.98            1.00
  par(mfrow = c(1, 1))  
 plot(data$Tmax_med, data$Insolation_med, 
       main = "Tmax_med vs Insolation_med",
       xlab = "Tmax_med (°C)", ylab = "Insolation_med",
       pch = 16, col = "blue")
  abline(lm(Insolation_med ~ Tmax_med, data = data), col = "black", lwd = 2)  

 data <- read.csv("../Exports/export_meteo.csv", header = TRUE, sep = ",")
  variables <- c("Tmin_med", "Tmax_med", "RR_med", "NBJRR1_med", "NBJRR5_med", 
                 "NBJRR10_med", "Tens_vap_med", "Force_vent_med", 
                 "Insolation_med", "Rayonnement_med")
  data_subset <- data[, variables]
  corr <- cor(data_subset, use = "complete.obs")
  round(corr, 2)
##                 Tmin_med Tmax_med RR_med NBJRR1_med NBJRR5_med NBJRR10_med
## Tmin_med            1.00     0.78  -0.25      -0.34      -0.37       -0.26
## Tmax_med            0.78     1.00  -0.26      -0.35      -0.35       -0.24
## RR_med             -0.25    -0.26   1.00       0.64       0.85        0.90
## NBJRR1_med         -0.34    -0.35   0.64       1.00       0.84        0.56
## NBJRR5_med         -0.37    -0.35   0.85       0.84       1.00        0.82
## NBJRR10_med        -0.26    -0.24   0.90       0.56       0.82        1.00
## Tens_vap_med        0.77     0.65  -0.17      -0.12      -0.21       -0.21
## Force_vent_med      0.19    -0.05  -0.13      -0.20      -0.17       -0.14
## Insolation_med      0.26     0.21  -0.21      -0.17      -0.19       -0.21
## Rayonnement_med     0.25     0.19  -0.16      -0.08      -0.13       -0.18
##                 Tens_vap_med Force_vent_med Insolation_med Rayonnement_med
## Tmin_med                0.77           0.19           0.26            0.25
## Tmax_med                0.65          -0.05           0.21            0.19
## RR_med                 -0.17          -0.13          -0.21           -0.16
## NBJRR1_med             -0.12          -0.20          -0.17           -0.08
## NBJRR5_med             -0.21          -0.17          -0.19           -0.13
## NBJRR10_med            -0.21          -0.14          -0.21           -0.18
## Tens_vap_med            1.00           0.06           0.30            0.33
## Force_vent_med          0.06           1.00           0.07            0.05
## Insolation_med          0.30           0.07           1.00            0.98
## Rayonnement_med         0.33           0.05           0.98            1.00
  par(mfrow = c(1, 1))  
 plot(data$Tmax_med, data$Force_vent_med, 
       main = "Tmax_med vs Force_vent_med",
       xlab = "Tmax_med (°C)", ylab = "Force_vent_med",
       pch = 16, col = "green")
  abline(lm(Force_vent_med ~ Tmax_med, data = data), col = "black", lwd = 2)  

Analyse Informatique

Le programme est segmenté en trois sections distinctes, toutes exécutant une fonction similaire : importer des données météorologiques, établir une matrice de corrélation et créer un diagramme de dispersion pour examiner les liens entre diverses variables climatiques.

Le premier segment étudie le lien entre la température minimale (Tmin_med) et l’ensoleillement (Rayonnement_med), le second observe la corrélation entre la température maximale (Tmax_med) et l’exposition au soleil (Insolation_med), tandis que le troisième se concentre sur la relation entre Tmax_med et l’intensité du vent (Force_vent_med).

La première instruction de chaque segment, data <- read.csv(“../Exports/export_meteo.csv”, header = TRUE, sep = “,”), permet de récupérer un fichier CSV appelé export_meteo.csv qui se trouve dans le répertoire parent (../Exports/).

La fonction read.csv interprète ce fichier et le convertit en un data frame dans R, une structure tabulaire où chaque colonne représente une variable et chaque ligne correspond à une observation.

L’instruction header = TRUE signale que la première ligne du fichier renferme les intitulés des colonnes, tandis que sep = “,” spécifie que les données sont divisées par des virgules, ce qui est conforme à la norme pour un CSV.

Par la suite, le code établit une série de variables climatiques avec variables <- c(“Tmin_med”, “Tmax_med”, “RR_med”, “NBJRR1_med”, “NBJRR5_med”, “NBJRR10_med”, “Tens_vap_med”, “Force_vent_med”, “Insolation_med”, “Rayonnement_med”).

Cette liste inclut des variables importantes pour l’étude des feux de forêt : Tmin_med et Tmax_med pour les températures minimales et maximales, RR_med pour la mesure de précipitations, NBJRR1_med, NBJRR5_med, NBJRR10_med pour le dénombrement des jours avec plus de 1, 5 et 10 mm de pluie, Tens_vap_med pour la tension de vapeur (associée à l’humidité), Force_vent_med pour la vitesse du vent, Insolation_med pour la durée d’ensoleillement et Rayonnement_med pour le rayonnement solaire.

La commande suivante, data_subset <- data[, variables], permet de créer un sous-ensemble du data frame nommé data en conservant uniquement ces colonnes.

Le code procède ensuite à l’établissement d’une matrice de corrélation par le biais de corr <- cor(data_subset, use = “complete.obs”). La fonction cor() détermine les coefficients de corrélation de Pearson pour chaque paire de variables numériques présentes dans data_subset.

Il est crucial d’utiliser l’option use = “complete.obs” : elle exclut les lignes qui comportent des valeurs absentes (NA), prévenant ainsi les erreurs en cas de données incomplètes. Puis, print(“Matrice de corrélation :”) et round(corr, 2) montrent la matrice arrondie à deux chiffres après la virgule pour une meilleure clarté.

Cette matrice offre une vue d’ensemble des relations linéaires entre les variables : un coefficient près de 1 signale une corrélation positive marquée, aux alentours de -1 une corrélation négative marquée, et autour de 0 indique un manque de corrélation.

Les trois graphiques sont des diagrammes de dispersion (scatter plots) créés avec la fonction de base plot().

Le premier, dans le premier bloc, est généré par plot(data\(Tmin_med, data\)Rayonnement_med, main = “Tmin_med vs Rayonnement_med”, xlab = “Tmin_med (°C)”, ylab = “Rayonnement_med”, pch = 16, col = “red”).

Cette ligne affiche un nuage de points avec Tmin_med sur l’axe des x et Rayonnement_med sur l’axe des y.

Les arguments main, xlab, et ylab définissent le titre et les étiquettes des axes, tandis que pch = 16 utilise des points pleins et col = “red” les colore en rouge.

Ensuite, abline(lm(Rayonnement_med ~ Tmin_med, data = data), col = “black”, lwd = 2) ajoute une droite de régression linéaire, calculée avec lm() (modèle linéaire), en noir avec une épaisseur de 2.

Cette droite montre la tendance générale de la relation : si elle monte, la corrélation est positive ; si elle descend, elle est négative.

Ce graphique est utile pour voir si le rayonnement solaire augmente avec la température minimale, ce qui pourrait indiquer des conditions plus propices aux incendies.

Le second graphique, situé dans le second bloc, fait appel à plot(data\(Tmax_med, data\)Insolation_med, titre = “Tmax_med vs Insolation_med”, axeX = “Tmax_med (°C)”, axeY = “Insolation_med”, pch = 16, couleur = “blue”), suivi de l’invocation répétée de la commande abline() pour l’ajout d’une droite de régression.

Ce diagramme de dispersion illustre le lien entre la température maximale et la durée d’ensoleillement, en utilisant des points de couleur bleue.

Un lien positif dans ce cas (ligne montante) signifierait que des températures maximales hautes coïncident avec davantage d’heures de soleil, ce qui pourrait dessécher la flore et accroître le danger d’incendie.

Le troisième graphique, situé dans le troisième bloc, adopte une approche identique en utilisant plot(data\(Tmax_med, data\)Force_vent_med, main = “Tmax_med vs Force_vent_med”, xlab = “Tmax_med (°C)”, ylab = “Force_vent_med”, pch = 16, col = “green”).

Il analyse la relation entre la température maximale et la force du vent, avec des points verts. Une corrélation positive ou négative pourrait indiquer si des vents forts accompagnent des températures élevées, un facteur clé pour la propagation des incendies.

Analyse Statistique

Nous avons analysé le lien entre les variations des paramètres météorologiques, tels que la température minimale et maximale variable, l’irradiation fluctuante, l’ensoleillement changeant et la puissance inconstante du vent.

Chaque diagramme illustre une relation entre deux éléments de la météorologie dynamique :

Diagramme 1 (coloré en rouge) : Les moyennes mobiles de Tmin comparées au Rayonnement moyen aléatoire.

L’axe horizontal illustre la fluctuation de la température minimale moyenne (Tmin_med) en degrés Celsius, tandis que l’axe vertical dépeint la variabilité du rayonnement moyen (Rayonnement_med).

On constate une tendance chaotique croissante : à mesure que la température minimale monte de façon imprévisible, le rayonnement moyen semble également augmenter de façon aléatoire.

Ceci pourrait être dû au fait que des températures minimales plus élevées de façon aléatoire sont fréquemment liées à des journées globalement plus ensoleillées de manière imprévisible.

Graphique 2 (en bleu) : Les Tmax moyennes changeantes vs l’insolation moyenne variable

La température maximale moyenne mouvante (Tmax_med) est représentée sur l’axe horizontal, tandis que l’insolation moyenne imprévisible (Insolation_med) est indiquée sur l’axe vertical.

On observe une corrélation positive variable : quand la température maximale monte de façon sporadique, l’ensoleillement semble également croître de manière désordonnée.

Il existe un lien intuitif, car des températures plus élevées de façon capricieuse ont tendance à être observées lors de journées avec une exposition au soleil imprévisible.

Graphique 3 (en vert) : Les Tmax moyennes mobiles vs la Force du vent moyen imprévisible

Ce diagramme illustre le lien entre la variation de la température maximale moyenne (Tmax_med) et l’intensité moyenne du vent aléatoire (Force_vent_med).

À l’inverse des deux cas précédents, on note ici une corrélation légèrement négative instable.

Cela pourrait indiquer qu’à mesure que la température maximale monte de manière imprévisible, la vigueur du vent a tendance à faiblir de façon capricieuse, bien que le lien soit peu prononcé de manière capricieuse.

Cette constatation pourrait être associée à des conditions climatiques locales imprévisibles, où des journées exceptionnellement chaudes survenant de manière sporadique sont fréquemment accompagnées de conditions atmosphériques plus constantes et moins venteuses de façon désordonnée.

Observations marquantes irrégulières

Une correlation positive variable entre la température et l’ensoleillement/rayonnement.

Les deux premiers graphiques démontrent une corrélation évidente entre l’accroissement inattendu des températures (minimum et maximum) et une augmentation imprévisible du rayonnement et de l’insolation.

Cela correspond à l’observation que les périodes de chaleur sont fréquemment caractérisées par une exposition au soleil plus forte de manière capricieuse.

Une corrélation légèrement négative variable entre la température maximale et l’intensité du vent.

Le dernier diagramme révèle une légère tendance à la diminution imprévisible, suggérant que le réchauffement des températures n’est pas nécessairement lié à un renforcement des vents, et pourrait même être associé à une diminution erratique de leur vitesse.

Conclusion

Ces résultats soulignent des liens significatifs fluctuants entre la température, le rayonnement, l’insolation et le vent.

L’augmentation inattendue des températures semble coïncider avec une plus grande exposition au soleil, ce qui est à prévoir dans un contexte de conditions météorologiques normales fluctuantes.

Toutefois, le lien entre vent et température est plus complexe et semble être influencé par des facteurs climatiques régionaux et saisonniers imprévisibles.

5.3.3 Géographie et environnement

5.3.3.1 Propagation des incendies sur le territoire Francais
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("../Data/donnees_geo.csv")

chemin_fichier_geojson = "../Data/contour-des-departements.geojson"  
gdf_departements = gpd.read_file(chemin_fichier_geojson)

fig, ax = plt.subplots(figsize=(15, 15))  

gdf_departements.plot(ax=ax, color="lightgray", edgecolor="black")

ax.scatter(df["longitude"], df["latitude"], color="red", s=50, label="Incendies")  


ax.set_xlim([ -5.5, 10 ])
## (-5.5, 10.0)
ax.set_ylim([41.5, 51.5])   
## (41.5, 51.5)
plt.title("Carte des Incendies par Département", fontsize=20)
plt.legend()

ax.set_axis_off()

plt.savefig("carte_incendies_departements_geojson_grande_avec_points_agrandis.png", dpi=600, bbox_inches='tight')

plt.show()

Nous allons examiner l’analyse de la propagation des incendies à travers le territoire français après avoir utilisé ces informations sur la carte nationale de France.

Décomposons la France, qui est reconnue comme un État composé de régions. Ces régions sont elles-mêmes constituées de sous-régions, qui à leur tour regroupent des départements, et ces derniers, des communes.

En France, on compte 13 régions spécifiquement dans la partie métropolitaine. Nous allons d’abord les nommer, puis commencer leur énumération et enfin procéder à leur analyse.

  1. Auvergne-Rhône-Alpes
  2. Bourgogne-Franche-Comté
  3. Bretagne
  4. Centre-Val de Loire
  5. Corse
  6. Grand Est
  7. Hauts-de-France
  8. Île-de-France
  9. Normandie
  10. Nouvelle-Aquitaine
  11. Occitanie
  12. Pays de la Loire
  13. Provence-Alpes-Côte d’Azur

Nous procéderons à l’examen de ces 13 régions individuellement, pour finalement en arriver à une conclusion.

La région Auvergne Rhône-Alpes présente un taux d’incendies relativement bas, l’une des raisons étant qu’elle jouit d’un climat plus diversifié que celui d’autres régions du sud.Cette région a des altitudes plus élevées qui entraînent une température plus fraîche et un climat plus humide, ce qui diminue le danger d’incendies de grande envergure.

Le climat tempéré de la région Bourgogne Franche Comté, caractérisé par des hivers rigoureux et des étés modérés, explique son taux d’incendies inférieur comparativement à la région Auvergne Rhône-Alpes. Cette région abrite des montagnes et des collines comme le Jura et les Vosges, qui sont habituellement plus humides et moins prédisposées aux incendies forestiers. De plus, cette zone est surtout composée de forêts de feuillus (chênes, hêtres, érables) et de prairies qui présentent une moindre inflammabilité par rapport aux résineux ou aux maquis méditerranéens.

La région de Bretagne, en raison de son climat océanique et de ses températures modérées tout au long de l’année, présente un taux réduit d’incendies.Les hivers sont tempérés et les étés restent frais, accompagnés d’une humidité importante. En outre, les précipitations régulières et l’humidité persistante durant toute l’année préservent la végétation plus verdoyante et moins aride, contribuant ainsi à réduire le danger d’incendies.

Il y a effectivement certains incendies dans la région Centre-Val de Loire.Cette région jouit d’un climat continental, caractérisé par des hivers rigoureux et des étés plus tempérés en comparaison avec les régions du sud de la France. La région se compose de plaines et de collines, ce qui réduit la probabilité d’incidents majeurs et fait baisser le taux d’incendies dans le centre du Val de Loire.

La Corse est une des zones sensibles aux incendies en raison de divers éléments géographiques, climatiques, etc.La Corse jouit d’un climat méditerranéen marqué par des étés extrêmement chauds et arides, ce qui favorise l’apparition aisée d’incendies.Les températures estivales peuvent atteindre des sommets extrêmes, créant un environnement propice à la diffusion rapide des incendies. Cette zone peut être exposée à des rafales puissantes comme le Mistral qui facilitent la diffusion des feux.Ces courants d’air puissants et généralement secs peuvent propulser les flammes sur de vastes étendues, compliquant ainsi l’éradication des incendies.

La région Grand-est présente une moindre susceptibilité aux incidents, mais elle n’est pas totalement épargnée.Cette région jouit d’un climat diversifié qui subit des influences à la fois océaniques et continentales.Les hivers sont rigoureux, les étés sont torrides, cependant ils ne parviennent pas à égaler ceux du sud de la France en termes de températures.L’incidence des périodes de sécheresse est en baisse, diminuant ainsi le danger des incendies. En outre, cette région est dotée de magnifiques zones montagneuses et de vastes plaines. Cette région bénéficie d’une pluviométrie plutôt stable, surtout en automne et en février. Ces précipitations contribuent à conserver un certain degré d’humidité dans le sol et la végétation, ce qui diminue les risques d’incendies.

Le climat humide, la présence de forêts de feuillus, le relief plat et les vents modérés contribuent à rendre la région des Hauts-de-France relativement moins vulnérable aux incendies.Ainsi, les conditions météorologiques et géographiques sont généralement moins favorables aux incendies sévères que d’autres zones situées au sud.

L’Île-de-France, étant la région où se trouve la capitale, est la plus densément peuplée et urbanisée de France. Elle est moins sujette aux grands incendies que les régions situées au sud du pays. En revanche, cette région n’est pas entièrement protégée contre les incendies. Cette région jouit d’un climat océanique tempéré caractérisé par des hivers rigoureux et des étés doux. En outre, la topographie de l’Ile-de-France est principalement plane ou légèrement vallonnée, en contraste avec les régions montagneuses telles que les Alpes ou les Pyrénées.

La région de Normandie affiche un taux réduit d’incendies.Grace à son climat océanique tempéré, son niveau de précipitations constant, sa topographie relativement plane et sa végétation essentiellement feuillue, la Normandie est moins sujette aux incendies que d’autres zones en France.Ces facteurs contribuent à une augmentation de l’humidité dans l’environnement, réduisant par conséquent le risque d’incendies. Néanmoins, des incendies sporadiques peuvent encore survenir, principalement dans les régions boisées et rurales pendant les périodes de sécheresse ou de chaleur intense, même s’ils restent relativement peu fréquents par rapport aux zones plus chaudes et sèches du pays.

La région Nouvelle Aquitaine, située dans le sud-ouest, est susceptible de subir des incendies, notamment à cause de son climat et de sa végétation. Cette région présente un climat plutôt océanique à l’ouest et méditerranéen à l’est, ce qui signifie que les étés peuvent être particulièrement chauds et secs, surtout dans les zones limitrophes de l’Espagne et du Pays Basque. Par ailleurs, les vagues de chaleur peuvent entraîner des phases d’aridité prolongées qui créent un environnement propice aux incendies.

L’Occitanie est une des régions les plus vulnérables aux incendies en raison de divers facteurs géographiques, climatiques et écologiques.Dans sa partie méridionale et sud, cette région jouit d’un climat méditerranéen avec des étés chauds et secs.Durant l’été, les températures peuvent grimper à des sommets élevés et la région est susceptible de connaître des phases d’aridité prolongées, des circonstances propices aux incendies. Dans la propagation des incendies, le vent, notamment le Mistral et la Tramontane qui balaye occasionnellement la zone, a un impact crucial.

La région du Pays de la Loire présente une exposition moindre aux incendies par rapport à d’autres régions. Le climat de cette zone est océanique, c’est-à-dire qu’il offre des hivers doux et des étés tempérés, avec des précipitations régulières tout au long de l’année. Les vagues de chaleur se produisent généralement dans d’autres zones, comme le sud-est de la France, ce qui rend la région moins susceptible aux incendies liés à la canicule.

Pour conclure, la dernière région est la Provence Alpes Côte d’Azur, qui se trouve dans le sud-est et subit une forte influence de divers facteurs climatiques et géographiques.Cette région jouit d’un climat méditerranéen, marqué par des étés très chauds et secs ainsi que des hivers doux et humides. Durant l’été, les températures peuvent atteindre des niveaux extrêmement élevés avec des vagues de chaleur qui se produisent fréquemment. On peut également observer que cette zone est celle où le taux d’incendies est le plus élevé.

Suite à l’étude de la progression du taux d’incendies sur la carte nationale que nous avons réalisée, il est évident que la région où le taux d’incendies est le plus élevé est la Côte d’Azur. En revanche, les zones où le taux d’incendies est le plus faible incluent des régions telles que les Pays de la Loire, Normandie, etc. Il est donc clair que les conditions météorologiques et la localisation géographique de la ville ou de la région ont un impact crucial, surtout lorsque les conditions climatiques sont particulièrement propices aux incendies. De même, la nature des forêts situées dans les zones urbaines a une incidence significative sur l’expansion des feux.Bien qu’il existe une différence de taux d’incendies entre la ville et la montagne, cette question sera examinée dans le cadre d’une autre problèmatique.

5.3.3.2 Comparaison de la fréquence des incendies dans les régions montagneuses vs basses altitudes

L’objectif de cette étude est d’examiner et de comparer le lien entre les incendies et l’altitude dans diverses régions et départements en France.

Les données utilisées sont issues de deux sources majeures. Un fichier CSV contient divers attributs, parmi lesquels nous avons choisi ceux qui nous intéressent, à savoir les données concernant la superficie des terrains brûlés, la nature de ces feux, ainsi qu’un fichier géographique comprenant des renseignements sur l’altitude moyenne de chaque municipalité.

Cette analyse vise à déterminer si les incidents ont tendance à être plus fréquents ou plus graves aux altitudes élevées comparativement aux altitudes inférieures.

Avant de procéder à l’analyse, nous allons décrire nos données.

Les informations sur les incendies incluent des données concernant la superficie des incendies exprimées en surface_parcourue_m2, ainsi que le type d’incendie principal et secondaire indiqué soit par nature_inc_prim, soit par nature_inc_sec. De plus, nous disposons de détails chronologiques tels que année, mois, jour, heure.

Le fichier donnes_geo nous donne des renseignements sur la hauteur moyenne de chaque commune, illustrée en altitude_med, ce qui nous aidera à catégoriser les incendies selon leur altitude en deux options : soit haute, soit basse altitude.

Dans cette analyse cruciale, nous avons utilisé une variable catégorielle altitude_zone qui classe chaque commune selon son altitude moyenne : soit en zones de basse altitude en utilisant une délimitation de moins de 1000 mètres que nous avons employée pour les altitudes inférieures, soit en zones de haute altitude grâce à une dénomination au-dessus de 1000 mètres.

Apres avoir decrits touts els donnees qu’on possede pour cette anaylyse on va commencer a calculer la correlation de Pearson. On va calculer la correlation entre la surface des incendies et l’altitude. Le but de cella la est de voir si il existe une relation lineaire entre la surface des incendies et l’altitude.

On va y calculer la correlation et apres on va analyser le graphe de la correlation de Pearson

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
correlation <- cor(incendiesregions$surface_parcourue_m2, incendiesregions$altitude_med, use = "complete.obs")

print(paste("Corrélation de Pearson entre la surface des incendies et l'altitude : ", round(correlation, 2)))
## [1] "Corrélation de Pearson entre la surface des incendies et l'altitude :  0"

Nous observons une corrélation de 0, ce qui indique qu’il n’y a pas de lien linéaire entre les deux variables. Nous concluons donc qu’elles sont indépendantes l’une de l’autre.

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = altitude_med, y = surface_parcourue_m2)) +
  geom_point(color = "blue", alpha = 0.6) +
  labs(title = "Corrélation entre l'altitude et la surface des incendies",
       x = "Altitude (m)", y = "Surface parcourue des incendies (m²)") +
  theme_minimal() +
  geom_smooth(method = "lm", se = FALSE, color = "red")
## `geom_smooth()` using formula = 'y ~ x'

1- Analyse Informatique du Graphe de Corrélation

On a commencé par charger le fichier CSV (valeurs séparées par des virgules) en utilisant la méthode prédéfinie read.csv. Nous avons également eu recours à la bibliothèque ggplot2 pour réaliser le graphique qui sera ensuite soumis à une analyse statistique.

De plus, nous avons précisé dans la méthode ggplot le paramètre contenant le fichier CSV ainsi que l’aesthetics d’où nous indiquons les axes X et Y.

Par la suite, on utilise geom-point() pour intégrer des points (scatter plot) au diagramme.Dans notre schéma, chaque duo illustre une paire de valeurs.L’option color donne la faculté de changer la couleur des points en bleu, tandis que l’option alpha permet de définir leur degré de transparence.

Un alpha de 1 signifierait une opacité totale, alors qu’un alpha de 0 indiquerait une transparence totale.

Par la suite, nous employons la fonction labs() pour attribuer des étiquettes au graphique et nous intégrons la méthode theme_minimal afin d’appliquer un style contemporain à notre diagramme.

Pour appliquer le graphique de corrélation, nous employons la méthode geom_smooth() qui nous donne l’opportunité d’intégrer la ligne de tendance, également connue sous le nom de courbe de régression, sur le graphique.Cela vise à mettre en évidence une tendance globale entre les variables.

Nous aimerions faire un récapitulatif des options disponibles dans la méthode geom_smooth() :

  • L’option method = “lm” indique qu’une régression linéaire est employée. Cette régression va nous révéler le lien linéaire entre l’altitude et la superficie des feux de forêt.

  • L’option se=FALSE nous permet d’éviter l’affichage de l’intervalle de confiance.

  • L’option color = “red” sert à définir la couleur de la courbe de régression en rouge.

2- Analyse Statistique:

En examinant notre diagramme de façon statistique, nous notons que l’Axe des X illustrant l’altitude s’étend de 0 à 2000 mètres. Concernant l’axe des Y, il indique la superficie des incendies allant de 0 à 1 000 000 m², même si la plupart des points se regroupent sous les 750 000 m². Nous précisons que les points bleus sur notre graphique correspondent aux observations individuelles de la superficie des incendies à diverses altitudes.

On note une importante densité de points à des altitudes faibles (proches du niveau de la mer), accompagnée d’une grande variabilité dans la superficie des incendies, qui peut atteindre environ 750 000 m². Quand l’altitude dépasse 500m, la quantité de points diminue et l’étendue des incendies paraît généralement moins importante avec très peu de cas où les feux excèdent 250,000 m2 au-delà de 1000m. La ligne rouge horizontale, placée autour de 250,000 m², représente une référence ou, pour dire autrement, la moyenne.

On observe une tendance à la baisse de la superficie des incendies lorsque l’altitude augmente. On pourrait également affirmer que le taux d’incendies en montagne sera inférieur à celui observé en milieu urbain. Il est crucial de noter que l’écart entre les points est significatif, surtout à basse altitude, ce qui suggère que le lien n’est pas fortement linéaire. Cela peut être influencé par divers éléments tels que le climat, la végétation, l’activité humaine, etc., qui pourraient affecter l’étendue des incendies.

Une fois la corrélation de Pearson calculée, nous allons maintenant procéder à la mise en œuvre d’une régression polynomiale, à condition que nous admettions que les deux variables sont indépendantes linéairement.

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = altitude_med, y = surface_parcourue_m2)) +
  geom_point(color = "blue", alpha = 0.6) +
  labs(title = "Régression Polynomiale entre Altitude et Surface des Incendies",
       x = "Altitude (m)", y = "Surface parcourue des incendies (m²)") +
  theme_minimal() +
  geom_smooth(method = "lm", formula = y ~ poly(x, 2), se = FALSE, color = "red")

On va en premier analyser en premier une Analyse Informatique et puis une Analyse Statistique:

1- Analyse Informatique:

Nous utilisons également la bibliothèque ggplot2 ici. Nous commençons à construire notre graphique en invoquant la méthode ggplot(), tout en précisant le DataFrame. En définissant l’aes, nous déterminons les axes x et y. Ensuite, nous traçons les points sur le graphique en spécifiant leurs couleurs et transparences. Par la suite, nous ajoutons les étiquettes à notre graphique et appliquons le theme_minimal() afin de lui conférer une apparence moderne.

On finit par tracer la courbe de la régression polynomiale en employant la méthode geom_smooth(). Il est précisé que la méthode employée sera la régression linéaire, puis on note le score de la formule de régression polynomiale en utilisant poly(x,2). On indique que l’on souhaite x et x2, pas seulement x. Se implique que nous masquons l’intervalle de confiance.

2- Analyse Statistique:

Nous allons examiner le graphique de la régression polynomiale entre l’altitude et la superficie des feux de forêt. L’axe des x va de 0 à 2000 mètres, tandis que l’axe des y s’étend de 0 à 1 000 000 m², avec une grande partie des points situés au-dessus de 750 000 m².

Les observations individuelles sont représentées (la superficie des incendies à diverses altitudes).En outre, la ligne rouge qui entoure environ 250,000 m² représente la régression polynomiale.

La régression des points correspond à l’analyse antérieure du graphique, présentant une altitude basse de 0 à 500m avec une large variabilité allant jusqu’à 750,000 m2. On observe une diminution graduelle de la densité des points et des surfaces à mesure que l’altitude s’accroît.

La courbe de régression polynomiale est une ligne légèrement montante.

Après avoir effectué ces deux calculs, nous passerons à l’étape d’analyse approfondie de nos données.Nous commencerons par examiner la surface d’altitude par zone d’altitude.

  1. L’analyse de la surface des incendies par zone d’altitude

Pour ce faire, nous allons construire notre histogramme puis réaliser deux types d’analyses : une analyse informatique et une autre statistique.

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = surface_parcourue_m2, fill = altitude_zone)) +
  geom_histogram(binwidth = 5000, position = "dodge", alpha = 0.7) +
  labs(title = "Distribution de la surface des incendies par zone d'altitude",
       x = "Surface des incendies (m²)", y = "Fréquence") +
  theme_minimal()

1- Analyse Informatique:

Pour dessiner cet histogramme, nous avons utilisé la bibliothèque ggplot2.Dans un premier temps, nous avons importé les données du fichier CSV dans une variable sous forme de DataFrame.

Par la suite, nous avons utilisé la méthode ggplot().Cette dernière nécessite en paramètres la variable où les données sont entreposées ainsi que l’aes où nous spécifions nos deux axes, x et y, le x représentant ici la surface des incendies. Nous avons ensuite coloré les barres de l’histogramme en fonction des différentes zones d’altitude.

Pour intégrer l’histogramme, nous avons utilisé la méthode geom_histogram qui nécessite plusieurs paramètres. Parmi ces paramètres, nous indiquons la largeur des classes ou en d’autres termes, le binwidth, qui sera fixé à 5000 m² pour agrégater les incendies en segments de 5000 m². Nous spécifions également que les barres seront disposées en mode dodge, c’est-à-dire côte à côte pour chaque zone afin de faciliter la comparaison entre les différentes catégories.Et finalement, nous précisons que la transparence des couleurs sera de 0,7, afin de simplifier l’interprétation de notre histogramme.

Ensuite, nous intégrons le titre et les étiquettes à notre histogramme en utilisant la méthode prédéfinie labs(). Cette dernière nécessite deux paramètres : title pour attribuer un titre au graphique, ainsi que x et y pour nommer respectivement les axes des abscisses et des ordonnées.

Pour personnaliser le thème, nous avons employé la méthode prédéfinie theme_minimal() pour conférer un style contemporain.

2- Analyse Statistique:

Les incendies constituent un défi majeur pour la gestion des risques liés à l’environnement, aux personnes et à la sécurité. Comprendre leur distribution spatiale, en particulier par rapport à l’altitude, nous aide à repérer les zones sensibles et à ajuster nos stratégies de prévention.

Cette étude vise à examiner les informations fournies sur les surfaces brouillées dans quatre zones d’altitude, allant de la basse à la haute altitude.

Nous visons à identifier les tendances et à examiner leurs causes potentielles.

La description des données mentionne quatre valeurs principales qui correspondent aux zones brûlées.

La plupart des feux dans ces deux zones se situent sur des surfaces plutôt réduites, allant de 0 à 250 000 m². Cela est signalé par les fréquences élevées.

Alors que la superficie s’accroît au-delà de 250,000 m², le taux d’incendies chute rapidement pour les deux zones, avec très peu d’entre elles dépassant les 500,000 m².

Nous allons maintenant présenter la comparaison entre les deux principales zones, Zone Basse et Zone Haute.

Nous allons débuter avec la Zone Basse. Cette région affiche une occurrence nettement supérieure, en particulier pour les petites surfaces, avec un sommet frôlant les 100.On peut donc supposer que les incendies de petite à moyenne envergure se produisent beaucoup plus souvent en zone basse.En d’autres termes,on peut constater que les incendies surviennent plus souvent dans les villes ou les communes situées à une altitude basse.

Concernant la région à altitude élevée.La survenue de ces incendies est moins fréquente,avec des sommets pouvant aller jusqu’à 10 - 20 sur une même étendue de terrain.

Cela suggère que les incendies sont moins courants dans les zones élevées, ou que leur portée est plus restreinte.

Pour le dire autrement, on peut affirmer que la fréquence des incendies est plus élevée dans les villes ou communes situées à une altitude importante.

Suite à l’étude des deux régions en altitude, nous allons discuter de la tendance globale.

La distribution présente une forme d’atténuation exponentielle que l’on pourrait qualifier de queue lourde selon les statistiques, pour ces deux zones.

On peut également affirmer que la probabilité de voir se produire des incendies de grande ampleur dépassant les 500,000 m2 est extrêmement faible.

Il est à noter que, au-delà de 750,000 m2, les incendies d’une très grande envergure sont peu fréquents dans ces deux régions.

Le mode en statistique, représentant la valeur la plus courante dans nos données, est positionné sur la première barre pour les deux zones. Cependant, son accentuation est davantage marquée en zone basse.

La variation des surfaces brûlées est plus significative dans les zones où les incendies englobent une vaste étendue de terrain avec une fréquence remarquée. Dans les zones élevées, la dispersion est moindre avec une concentration autour des petites surfaces.

La distribution présente une forte asymétrie à droite (avec une biais positif) et possède une longue queue pour les grandes superficies, même si cette dernière est pratiquement nulle au-delà de 500,000 m2.

Il est probable que les incendies dans les zones basses soient plus courants en raison des conditions environnementales propices (végétation dense, températures élevées, accès humain facilité).

La fréquence des incendies en zones élevées pourrait être due à des éléments tels qu’une végétation moins dense, un climat plus frais ou une accessibilité restreinte.

L’occurrence rare de vastes incendies dépassant les 500,000 m2 dans ces deux régions pourrait témoigner de mesures efficaces ou de barrières naturelles (comme la topographie et l’humidité).

On pourrait finalement convenir que ce graphique indique une fréquence et une variété nettement plus grandes des incendies en termes de superficie dans les zones de basse altitude, avec une prédominance marquée des petits incendies qui se propagent entre 0 et 250,000 m².

Dans les zones élevées, les incendies sont moins fréquents et se restreignent généralement aux petites superficies.

  1. La surface des incendies par zone haute et baisse des altitudes

Donc en premier on va dresser notre boxplot. On indique que le boxplot il est utile pour pouvoir visualiser la repartition des donnees.

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = altitude_zone, y = surface_parcourue_m2)) +
  geom_boxplot(fill = c("lightblue", "lightgreen")) +
  labs(title = "Surface des incendies par zone d'altitude", 
       x = "Zone d'altitude", 
       y = "Surface parcourue (m²)") +
  theme_minimal()

1- Analyse Informatique:

D’abord, nous soulignons que ce diagramme en boîte, également connu sous le nom de boxplot en anglais, nous donnera la possibilité d’observer la répartition des surfaces brûlées dues à des feux dans deux principales zones.

Comme à l’accoutumée, nous importons les données dans une variable sous forme de DataFrame en spécifiant le chemin relatif du fichier contenant ces données.

Par la suite, on utilise la méthode ggplot pour créer un graphique initial à l’aide du package ggplot2.Ainsi, dans cette approche, on recourt à la variable qui contient les données précédemment stockées comme paramètre.Ensuite, nous définissons l’altitude comme l’axe des x et nous alignons les ordonnées sur l’axe des y.

On précise que altitude_zone fait référence aux catégories d’altitudes, qu’elles soient basses ou élevées, et que surface_parcourue_m2 représente la superficie brûlée en mètres carrés.

Pour intégrer le graphique dans le box, on emploie la méthode préétablie de la bibliothèque geom_boxplot(). qui va produire un boxplot, une forme de représentation graphique qui permet d’illustrer la dispersion des données, y compris la valeur médiane, etc. Par ailleurs, l’option fill nous autorisera à spécifier les teintes pour remplir les boutes.

On attribue finalement des titres et des étiquettes aux axes ainsi qu’au graphique en utilisant la fonction prédéfinie labs(). Pour personnaliser et moderniser le thème, comme à l’accoutumée, nous utilisons la fonction prédéfinie theme_minimal.

2- Analyse Statistique

Nous allons procéder à une analyse statistique de notre graphique qui est illustré par un diagramme en boîte.Nous allons comparer la répartition de la superficie des incendies exprimée en m² dans deux régions d’altitude : basse et haute.

Nous débutons la présentation des composantes de notre graphique avec l’axe Y, qui illustre la superficie parcourue en m² sur une échelle allant de 0 à 1 000 000 m².L’axe X dépeint quant à lui les deux catégories : Basse et Haute.

Notre graphique présente deux boîtes, chacune d’elles illustrant la répartition des données avec des moustaches et des points qui symbolisent les valeurs extrêmes. Il est à noter que la zone Basse est indiquée en bleu clair et la zone Haute en vert pâle.

Nous allons définir un BoxPlot comme contenant les informations suivantes :

  • La ligne médiane dans la boîte est un indicateur de la Médiane.

  • Les Quartiles sont les extrémités de la boîte qui illustrent le premier quartile.

  • Les Moustaches s’étendent habituellement jusqu’aux valeurs extrêmes, maximales et minimales.

  • Les Points symbolisent les valeurs extrêmes qui dépassent les moustaches.

La Zone Basse englobe la région médiatique où elle semble se déployer sur environ 200,000 m2. Les moustaches de cette zone basse s’étendent jusqu’à 50,000 m en profondeur et 500,000 m2 en hauteur.

De plus, on peut observer une multitude de points entre 500,000 et 1,000,000 qui signalent des incendies d’une ampleur exceptionnelle.

Concernant la Zone Haute, sa superficie s’étend approximativement de 100,000 m2 à 250,000 m2.

De plus, elle semble légèrement inférieure à celle de la Zone Basse qui est d’environ 150,000 - 175,000 m2.

Les moustaches se déploient sur une superficie d’environ 50 000 m² en bas et de 500 000 m² en haut.

On constate que moints de points abeerant que dans la Zone Basse avec quelques valeurs entre 500,000 et 750,000 m2.

En observant les deux zones, on remarque :

  • On constate que la mediane est supérieure dans la Zone Basse, avoisinant les 200,000 m2, par rapport à la zone Haute, où elle se situe entre 150,000 et 175,000 m2. Cela indique que les incendies ont tendance à occuper une superficie plus importante en altitude inférieure.

  • Les deux boîtes sont asymétriques du côté droit.

  • La Zone Basse présente davantage de valeurs extrêmes jusqu’à 1,000,000 m2 comparativement à la Zone Haute qui atteint jusqu’à 750,000 m2. Cela pourrait indiquer que les conditions sont propices à des incendies hors du commun en basse altitude.

Il est possible que les incendies plus importants en basse altitude soient attribuables à une abondance accrue de combustible (forêts denses, broussailles) ou à une facilité d’accès pour des facteurs humains (déclenchements de feu).

À haute altitude, les conditions plus sévères pourraient entraver la propagation.

Il est possible de déduire à partir de cette sous-problématique que ce graphique illustre une disparité dans l’étendue des incendies en fonction de l’altitude.

Les régions de basse altitude présentent une superficie parcourue nettement plus grande que les zones situées en haute altitude.

Cette variation est biologiquement justifiée par l’augmentation de la densité de végétation combustibles, une intervention humaine plus prononcée ou même des conditions météorologiques plus favorables au déclenchement d’incendies dans les zones basses.

3- La variation de la surface des incendies au fils des années:

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = annee, y = surface_parcourue_m2, color = altitude_zone)) +
  geom_line() +
  labs(title = "Variation de la surface des incendies au fil des années",
       x = "Année", y = "Surface parcourue des incendies (m²)") +
  theme_minimal()

1- Analyse Informatique:

Nous commencerons par réaliser une analyse informatique en détaillant la façon dont nous avons programmé ce graphique, puis nous passerons à l’analyse scientifique.

Dans un premier temps, nous avons assigné les données sous forme de tableau DataFrame à une variable qui utilise la méthode prédéfinie read.csv pour permettre la lecture des données.

Par la suite, nous avons créé le graphique en utilisant la méthode ggplot, qui prend deux arguments majeurs :la variable contenant les données et l’aes aesthetics qui va représenter les axes x et y.

De plus, il est précisé que chaque zone d’altitude sera illustrée par une couleur distincte.

Par la suite, une ligne est dessinée pour relier les points de données correspondant à chaque zone d’altitude.

Nous précisons que chaque courbe indique une altitude distincte, ce qui nous permet d’examiner la progression des incendies en fonction des années et de l’altitude.

Pour accomplir cela, nous avons utilisé la méthode geom-line().

Pour personnaliser notre graphique, nous allons attribuer des noms aux étiquettes et aux titres en utilisant la méthode prédéfinie labs().

De plus, afin d’appliquer un thème moderne de style épuré à chaque graphique, nous utilisons la méthode theme_minimal().

2- Analyse Statistique:

Ce graphique présente une série temporelle avec des divisions annuelles sur l’axe horizontal (X) couvrant la période de 2012 à 2023, et représente la superficie affectée par les incendies en mètres carrés sur l’axe vertical (Y), allant de 0 à 1 million de m².

Les données que nous détenons sont présentées sous forme de tracés en zigzag avec des segments verticaux, ce qui nous permet de supposer qu’il s’agit de lignes accompagnées d’intervalles de confiance.

Deux zones en altitude y sont présentes.
La région supérieure, illustrée en cyan, représente les zones brûlées à haute altitude, tandis que la zone inférieure, signalée en rouge, dénote les surfaces incendiées à basse altitude.

Chaque point sur la ligne représente une estimation annuelle, tandis que les segments verticaux illustrent une variabilité.

Par rapport à la zone Basse :

  • De 2012 à 2014, la superficie couverte reste assez limitée, oscillant autour de 100 000 m² avec des sommets avoisinant à peu près 250 000 m².Les segments verticaux montrent une variabilité modérée, avec des sommets avoisinant les 500,000 m² en 2013.

  • Entre 2015 et 2017, on a observé une hausse notable avec des valeurs moyennes avoisinant les 200,000 m². Cependant, des sommets extrêmes ont été atteints, notamment à 1,000,000 m² en 2016 et 2017. Cela nous conduit à interpréter qu’il y a eu des incendies d’une ampleur exceptionnelle.

  • De 2018 à 2020, la superficie moyenne connaît une légère baisse oscillant entre 50,000 et 150,000 m². Cependant, les segments verticaux continuent à afficher des pics élevés (jusqu’à 800,000 m² en 2019). Au cours de cette période, la variabilité demeure significative.

  • De 2021 à 2023, on observe une tendance générale à la diminution, avec des moyennes se situant autour de 50 000 m². Cependant, les pics récurrents aux alentours de 500 000 - 750 000 m² démontrent que ces incendies extrêmes continuent de se produire.

Pour ce qui est de la Zone Haute :

  • De 2012 à 2014, les zones ravagées par le feu sont généralement très petites, rarement supérieures à 50 000 m², avec des pics ne dépassant pas 100 000 m². On en conclut que la fluctuation entre 2012 et 2014 est restreinte.

  • On remarque une hausse abrupte entre 2015 et 2016, culminant en 2016 avec une moyenne d’environ 300 000 m2 et un record proche de 750 000 m2. Cela suggère qu’un phénomène atypique a eu lieu en haute altitude.

  • De 2017 à 2020, suite à ce pic, les superficies retombent à des niveaux faibles, que l’on peut estimer à une moyenne de 50 000 m². Des pics occasionnels peuvent atteindre environ 500 000 m² en 2019.

  • De 2021 à 2023, la tendance demeure constante avec des superficies moyennes faibles avoisinant les 50 000 m² et des pics plus modestes atteignant jusqu’à 250 000 m², suggérant une diminution des incendies extrêmes en haute altitude.

Les deux zones montrent une grande variabilité d’année en année, mais on remarque que la Zone Basse affiche constamment des superficies brûlées plus importantes et des extrêmes plus prononcés que la Zone Haute.

Cela confirme l’interprétation du diagramme en boîte précédent, où les incendies en altitude basse étaient plus répandus et plus variables.

On observe une correspondance entre les deux régions, particulièrement aux alentours de 2016-2017 où les deux présentent des pics.

On peut en déduire que cela découle de facteurs climatiques et environnementaux partagés.

Les segments verticaux s’étendent bien plus haut que bas, ce qui nous autorise à conclure qu’il s’agit d’une distribution asymétrique vers la droite.

La concordance des deux zones, approximativement entre 2016 et 2017,pourrait être attribuée à des conditions météorologiques telles qu’une sécheresse prolongée ou des températures élevées qui facilitent la diffusion des incendies.

La région basse présentant systématiquement des superficies plus étendues est vulnérable à ces circonstances en raison d’une densité de végétation plus importante ou d’une accessibilité humaine accrue.

La Zone Haute présente généralement des zones brûlées plus réduites, sans doute en raison de conditions moins propices à la propagation telles que la présence réduite de combustible, des températures plus fraîches et des sols rocailleux.

Cependant, le record de 2016 indique que des phénomènes rares comme les vents violents ou les éclairs peuvent causer des incendies conséquents même à haute altitude.

Concernant les tendances récentes, la baisse des zones incendiées après 2020 dans les deux régions pourrait témoigner d’initiatives de prévention telles que la gestion forestière,la lutte anti-incendie ou encore des modifications climatiques comme une augmentation de la fréquence des précipitations. 4- Les Catégories des Incendies par zone d’altitude:

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = altitude_zone, fill = nature_inc_prim)) +
  geom_bar(position = "stack") +
  labs(title = "Repartition des types d'incendies par zone d'altitude",
       x = "Zone d'altitude", y = "Nombre d'incendies") +
  theme_minimal()

1- Analyse Informatique:

On a d’abord chargé les données dans une variable qui contient les données sous la forme d’un tableau dataframe provenant du fichier CSV contenant toutes les informations requises.

Par la suite, on emploie la méthode gplot qui est prédéfinie dans la bibliothèque ggplot2. Pour générer le graphique basé sur les informations du fichier CSV, elle nécessite deux paramètres clés : le premier est la variable qui contient les données et l’autre est l’aes aesthetics où l’on spécifie l’axe des x qui illustrera les différentes zones d’altitude. Nous activons également l’option fill pour permettre une coloration en fonction du type d’incendie indiqué dans la variable **nature_inc-_prim**.

Ensuite, nous ajoutons les barres empilées au graphique en utilisant la méthode prédéfinie geom_bar. Nous précisons que la position sera stack, ce qui signifie que les barres seront superposées et chaque couleur représentera une catégorie distincte de nature_insc_prim. La hauteur totale de la barre indiquera le nombre total d’incendies dans chaque zone d’altitude.

Si l’on souhaite se baser sur la proportion des différents types d’incendies plutôt que sur les valeurs absolues, on pourrait recourir à la valeur fill. Cela nous aidera à normaliser les barres afin qu’elles aient toutes la même hauteur, illustrant ainsi la proportion de chaque type d’incendie.

Nous allons insérer le graphique joint, cependant, nous ne procéderons pas à l’analyse de la position fill, mais plutôt à celle de la position stack

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = altitude_zone, fill = nature_inc_prim)) +
  geom_bar(position = "fill") +
  labs(title = "Repartition des types d'incendies par zone d'altitude",
       x = "Zone d'altitude", y = "Nombre d'incendies") +
  theme_minimal()

Par la suite, nous intégrons les étiquettes et le titre en employant la méthode prédéfinie labs(), en précisant les deux axes x et y ainsi que le titre principal de notre graphique.

Et finalement, pour l’application d’un thème moderne au style épuré, nous utilisons la méthode prédéfinie theme_minimal().

2- Analyse Statistique:

En guise d’introduction, voici un histogramme empilé qui illustre le total des incendies dans deux zones distinctes, Basse et Haute.

Dans cette étude, on considère que la basse altitude est inférieure à 1000 mètres et la haute altitude, supérieure à 1000 mètres.

L’axe horizontal (X) illustre les zones d’altitudes, tandis que l’axe vertical (Y) représente le nombre d’incendies, allant approximativement de 0 à 1200.

Pour les types d’incendies, nous avons quatre catégories : accidentel représenté en rouge, involontaire en vert, malveillance en cyan et naturel en violet.

Dans la Zone Basse la repartittion est estimee en :

On fait une estimation d’environ 1200 incendies dans la région basse.

  • Maveillance représente la plus grande proportion, soit environ 40 à 45%, ce qui équivaut approximativement à 500 incidents.

  • Environ 30 à 50% des incendies, soit approximativement 400, sont d’origine involontaire.

  • De manière accidentelle, environ 15 à 20 %, soit approximativement 200 incendies.

  • Naturelle pas très faible, environ 5%, soit approximativement 50 incendies.

Dans la Zone Basse, on estime la répartition à :

On estime que le nombre d’incendies dans la Zone Haute se situe entre 150 et 200.

  • La majorité, soit environ 50%, représente approximativement entre 80 et 100 incendies involontaires.

  • Maveillance dénote environ 30% de près de 50 incendies.

  • Environ 15% des incendies sont approximativement dus à une négligence ou un accident, soit environ 25 cas.

  • Environ 5% de la partie naturelle correspondent approximativement à une dizaine d’incendies.

Pour déterminer si la distribution des types d’incendies est influencée par l’altitude de la zone, nous ferons appel au test d’indépendance du Chi2.

Ce tableau a été élaboré sur la base d’estimations des données.

Type d’incendie Basse Haute Total
Accidentelle 200 30 230
Involontaire 400 100 500
Malveillance 500 50 550
Naturelle 50 10 60
Total 1200 200 1400

On établit l’Hypothèse Nulle (H0) selon laquelle la distribution des types d’incendies est indépendante de la zone d’altitude.

Hypothèse Alternative (H1)La distribution est influencée par la zone d’altitude.

Nous allons effectuer le calcul en employant le langage R.

observed <- matrix(c(200, 400, 500, 50,  # Zone Basse
                     30, 100, 50, 10),   # Zone Haute
                   nrow = 4, byrow = FALSE)
rownames(observed) <- c("Accidentelle", "Involontaire", "Malveillance", "Naturelle")
colnames(observed) <- c("Basse", "Haute")

print("Fréquences observées :")
## [1] "Fréquences observées :"
print(observed)
##              Basse Haute
## Accidentelle   200    30
## Involontaire   400   100
## Malveillance   500    50
## Naturelle       50    10
row_totals <- rowSums(observed)
col_totals <- colSums(observed)
grand_total <- sum(observed)

expected <- matrix(0, nrow = 4, ncol = 2)
for (i in 1:4) {
  for (j in 1:2) {
    expected[i, j] <- (row_totals[i] * col_totals[j]) / grand_total
  }
}
rownames(expected) <- rownames(observed)
colnames(expected) <- colnames(observed)

print("Fréquences attendues :")
## [1] "Fréquences attendues :"
print(round(expected, 2))
##               Basse Haute
## Accidentelle 197.39 32.61
## Involontaire 429.10 70.90
## Malveillance 472.01 77.99
## Naturelle     51.49  8.51
chi2_contrib <- matrix(0, nrow = 4, ncol = 2)
for (i in 1:4) {
  for (j in 1:2) {
    chi2_contrib[i, j] <- (observed[i, j] - expected[i, j])^2 / expected[i, j]
  }
}
chi2_stat <- sum(chi2_contrib)

print("Contributions au Chi² :")
## [1] "Contributions au Chi² :"
print(round(chi2_contrib, 4))
##        [,1]    [,2]
## [1,] 0.0346  0.2092
## [2,] 1.9740 11.9482
## [3,] 1.6592 10.0425
## [4,] 0.0433  0.2618
print("Statistique Chi² :")
## [1] "Statistique Chi² :"
print(chi2_stat)
## [1] 26.17275
df <- (nrow(observed) - 1) * (ncol(observed) - 1)
print("Degré de liberté :")
## [1] "Degré de liberté :"
print(df)
## [1] 3
critical_value <- qchisq(0.95, df)
print("Valeur critique (alpha = 0.05) :")
## [1] "Valeur critique (alpha = 0.05) :"
print(critical_value)
## [1] 7.814728

La statistique du \(\chi^2\) calculée est 26.03, avec 3 degrés de liberté \((4-1) \times (2-1) = 3\).
À un seuil de signification \(\alpha = 0.05\), la valeur critique est 7.815.

Puisque la statistique observée \(26.03\) dépasse la valeur critique \(7.815\), nous rejetons l’hypothèse nulle \(H_0\),
ce qui indique que la répartition des types d’incendies dépend de la zone d’altitude.

On en déduit que les plus grandes contributions à la statistique du \(\chi^2\) proviennent des catégories suivantes :

  • Involontaire (Zone Haute) – 11.43 :
    → Les incendies involontaires sont surreprésentés en haute altitude par rapport aux attentes sous \(H_0\).

  • Malveillance (Zone Haute) – 10.39 :
    → Les incendies de malveillance sont sous-représentés en haute altitude.

  • Involontaire (Zone Basse) – 1.90 et Malveillance (Zone Basse) – 1.73 :
    → Ces deux catégories contribuent également, mais de manière moins marquée.

Finalement, le test du Chi2 indique une corrélation notable entre la sorte d’incendie et la zone d’altitude. Dans les zones à faible altitude, la majorité des incendies sont dus à des actes de malveillance (500 cas observés comparés à 471.73 attendus),tandis que dans les zones en hauteur,il y a une surreprésentation des incendies accidentels (100 cas observés contre 71.43 attendus).

Ces observations indiquent que les éléments humains tels que les actes malveillants en basse altitude et l’imprudence en haute altitude contribuent de manière significative à la distribution des incendies, en raison des disparités d’accessibilité, de densité démographique et d’activités humaines entre les régions.

Dans une zone de faible altitude La prévalence des incendies d’actes de malveillance à 41,67% et involontaires à 33,33% indique une influence humaine significative.

Ceci est associé à une densité de population plus élevée, des activités agricoles ou des actes criminels tels que les incendies volontaires.

Le faible pourcentage d’incendies naturels, soit 4.17%, souligne que les conditions naturelles ont une influence marginale.

Dans la Zone Haute, la prévalence des incendies accidentels à 50% pourrait témoigner d’actions humaines occasionnelles, tandis que la proportion plus faible d’actes de malveillance à 25% indique une difficulté d’accès pour les actes délibérés.

Le taux d’incendies naturels demeure bas, s’établissant à 5%, ce qui est cohérent avec les altitudes élevées où les orages sont moins fréquents ou moins enclins à provoquer des incendies.

L’analyse comparative des deux zones suggère que la surreprésentation des incendies de malveillance en basse altitude
pourrait être liée à des facteurs sociaux et économiques, tels que :

  • Conflits locaux ou vandalisme,
  • Activités agricoles, notamment le défrichement illégal.

À l’inverse, en haute altitude, la prédominance des incendies involontaires peut refléter des erreurs humaines,
souvent associées à des activités comme les loisirs en plein air ou des travaux occasionnels.

5- Les Catégories des Incendies au fils des années:

incendiesregions <- read.csv("../Exports/export_incendiesregions.csv")
ggplot(incendiesregions, aes(x = annee, fill = nature_inc_prim)) +
  geom_bar(position = "fill") +  
  labs(title = "Repartition des types d'incendies par annee",
       x = "Annee",
       y = "Proportion",
       fill = "Type d'incendie") +
  theme_minimal() +  
  scale_fill_brewer(palette = "Set2")

1- Analyse Informatique:

Pour construire ce diagramme, nous avons d’abord importé les données dans une variable en utilisant la méthode read.csv, en précisant comme argument le chemin relatif du fichier CSV.

Après cette étape, nous utilisons la fonction ggplot() en précisant deux paramètres essentiels : la variable contenant les données sous format DataFrame et l’aes aesthetics spécifiant l’axe des x qui sera représenté en années. Nous indiquons également que les barres du graphique seront remplies par nature_inc_prim, définissant ainsi le genre d’incendies.

Par la suite, on utilise la méthode prédéfinie geom_bar() en configurant le paramètre de position sur ‘fill’ afin de normaliser les hauteurs des barres. Cela permet à chaque barre de représenter une proportion plutôt qu’une valeur absolue.

Chaque barre est donc graduée de 0 à 1, où chaque couleur remplie par nature_inc_prim symbolise une part du total.

Pour personnaliser notre diagramme à l’aide de la fonction prédéfinie labs(), nous indiquons le titre principal de notre graphique ainsi que les titres des axes x et y respectivement. Dans le but d’adapter le thème de notre graphique pour qu’il soit plus cohérent et contemporain, nous recourons à la fonction prédéfinie theme_minimal().

On fait appel à la méthode prédéfinie scale_fill_brewer() pour appliquer une palette de couleurs définies par RColorBrewer. La palette Set2 est employée pour attribuer une couleur différente aux diverses catégories de nature_inc_prim, de façon distincte.

2- Analyse Statistique:

Dans ce diagramme, nous procéderons à une analyse statistique de notre graphique.

Tout d’abord, on précise que l’axe des X couvre la période de 2012 à 2023 avec une échelle continue et des intervalles d’à peu près 0,5 an. Quant à l’axe des Y, il est illustré par le ratio des incendies allant de 0 à 1 (100%).

Il existe quatre catégories d’incendies :

  • Représenté par Vert Clair, les incendies sont causés par des accidents.

  • Involontaires sont représentés par des incendies causés par des négligences ou des facteurs non intentionnels.

  • Malveillance dépeinte par Bleu incendies volontaires.

  • Rose représente les incendies provoqués par des phénomènes naturels.

Il est à noter que chaque histogramme annuel illustre la répartition proportionnelle des types d’incendies, avec une somme de ces proportions pour chaque année qui s’élève toujours à 1, soit 100%.

Nous allons examiner de façon descriptive les tendances dans le temps.

  • Acte malveillant :Cette catégorie prédomine presque tout au long de la période, avec des proportions variant entre 40 et 60%, un sommet remarquable vers 2015-2016 où la proportion s’approche d’environ 60%. On a constaté une légère baisse après 2020, atteignant environ 40 % en 2022-2023.

  • Involontaire:Durant la période, on observe une proportion notable oscillant entre 20 et 40%. Un pic est enregistré autour de 2013-2014 et 2019-2020, où cette proportion grimpe jusqu’à atteindre les 40%.On note une diminution d’environ 20% autour de 2015-2016, coïncidant avec un pic de malveillance.

  • La proportion accidentelle varie de manière modérée entre 10% et 20%. On note un pic significatif en 2017-2018 avec environ 20%, suivi d’une tendance plutôt stable avec une légère hausse vers 2022-2023, atteignant environ 15 à 20%.

  • Sur toute la période, on observe une faible proportion naturelle, inférieure à 5%. Quelques années, comme 2015 et 2020, indiquent une légère augmentation, mais celle-ci demeure marginale, se situant autour de 5%.

Allons à la description des tendances globales :

On observe une prévalence de malveillance, avec des incidents délibérés.La malveillance constitue la raison prédominante durant toute cette période, représentant en moyenne près de 50% des incendies.

Cela indique une influence humaine significative qui pourrait être associée à des crimes, des conflits régionaux ou des activités de déchiffrement illégal.

En outre, même si les proportions varient d’année en année, on constate une stabilité relative par rapport aux autres années.

Il n’y a pas de modification radicale dans la distribution globale des types d’incendies.

Les causes malveillantes demeurent prédominantes, suivies des causes involontaires et accidentelles, tandis que les causes naturelles ont une contribution négligeable.

Concernant la relation temporelle, lorsqu’on observe une augmentation de la malveillance, comme en 2015-2016 par exemple, le nombre d’incendies involontaires semble diminuer, suggérant une potentielle relation inverse entre ces deux catégories.

Interprétation écologique et sociologique:

L’omniprésence de la malveillance : La prévalence élevée d’incendies délibérés, entre 40 et 60% durant toute la période, indique des influences humaines significatives comme des délits criminels, des disputes relatives à la terre ou des méthodes de culture prohibées. Le sommet de 2015-2016 pourrait être lié à une période de tensions sociales ou économiques.

Concernant les incendies accidentels : Une proportion notable entre 20 et 40% reflète des défaillances humaines telles que deux feux mal éteints, des travaux insuffisamment supervisés ou même des cigarettes abandonnées. Le déclin vers 2015-2016 reflète une surreprésentation des actions intentionnelles cette année-là.

Concernant les incendies accidentels, leur proportion modérée entre 10 et 20 % suggère que des incidents tels que les défaillances électriques ou les feux de camp mal maîtrisés ont un rôle secondaire mais constant.

Concernant les incendies naturels, le taux est extrêmement bas. Près de 5% mentionnent que les phénomènes naturels (comme la foudre ou les éruptions volcaniques) sont peu fréquents dans cette région ou à cette époque. Ceci nous donne la possibilité de représenter un environnement peu enclin aux feux de forêt, par exemple une activité orageuse réduite.

Concernant l’évolution post-2020, on constate une baisse de la malveillance de 55% à 40%, et une hausse des incendies accidentels de 15% à 20%.

Ces deux aspects pourraient suggérer plusieurs choses:

  • Des efforts de prévention
  • Des changements dans les activités humaines

Conclusion de la Problematique:

Cette problématique indique que les feux sont plus courants et vastes en zones basses (plus petit 1000 m), principalement à cause de comportements de mauvaise foi (41,7 %) et d’oublis (33,3 %).

En revanche, en zones hautes (plus grand 1000 m), leur occurrence est moins fréquente et souvent accidentelle (50 %), associée à des actions humaines.

La corrélation de Pearson ne révèle aucun rapport linéaire entre l’altitude et la surface brûlée, cependant, le test du Chi² établit que la distribution des causes est liée à l’altitude (\(\chi^2\) = 26.03, p < 0.05).

Les sommets atteints en 2016-2017 indiquent des conditions climatiques extrêmes, tandis que la diminution après 2020 pourrait être le résultat de mesures de prévention efficaces.

Il est donc nécessaire d’ajuster les stratégies : combattre la malfaisance dans les zones basses et gérer les risques associés aux activités humaines dans les zones hautes.

5.3.3.3 Variation de l’altitude par region
5.3.3.4 Distance côtière et risque d’incendie
library(tidyverse)
library(geosphere)
## Warning: package 'geosphere' was built under R version 4.4.3
villes_cotieres <- tibble(
  ville = c("Brest", "Marseille", "Nice", "Biarritz", "Toulon"),
  lat = c(48.3904, 43.2965, 43.7102, 43.4832, 43.1242),
  lon = c(-4.4861, 5.3698, 7.2620, -1.5586, 5.9281)
)

df_incendies <- read_csv("../Data/donnees_geo.csv")
## Rows: 845 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): code_INSEE
## dbl (3): latitude, longitude, altitude_med
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_incendies <- df_incendies %>%
  filter(!is.na(longitude), !is.na(latitude)) %>%
  rowwise() %>%
  mutate(
    distance_min = min(
      map2_dbl(
        villes_cotieres$lon, villes_cotieres$lat,
        ~ distVincentySphere(c(longitude, latitude), c(.x, .y))
      ) / 1000  # Convertir en kilomètres
    )
  ) %>%
  ungroup()

df_incendies <- df_incendies %>%
  mutate(
    categorie_distance_cote = case_when(
      distance_min <= 10 ~ "Proche de la côte (<10 km)",
      distance_min <= 50 ~ "Modéré (10-50 km)",
      distance_min > 50 ~ "Loin de la côte (>50 km)",
      TRUE ~ "Inconnu"
    )
  )

df_summary <- df_incendies %>%
  count(categorie_distance_cote)

ggplot(df_summary, aes(x = categorie_distance_cote, y = n, fill = categorie_distance_cote)) +
  geom_col(width = 0.6, color = "white") +
  scale_fill_brewer(palette = "YlOrRd") +
  labs(
    title = "🔥 Risque d'incendie et proximité à la côte",
    subtitle = "Analyse par distance minimale à des villes côtières",
    x = "Catégorie de distance à la côte",
    y = "Nombre d'incendies"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(face = "bold", color = "#B22222"),
    axis.text.x = element_text(angle = 30, hjust = 1),
    legend.position = "none"
  )

1- Analyse Informatique

On débute en déclarant les bibliothèques requises.

tidyverse est employé comme base principale pour la gestion des données et leur représentation visuelle, alors que geosphere offre les instruments indispensables pour les calculs de distance géographique, notamment le calcul précis de la distance géodésique à l’aide de la formule de Vincenty.

Puis, une base de données fictive est créée pour illustrer un échantillon de villes côtières en France.

Cette option facilite la modélisation de la présence côtière sans nécessiter l’utilisation de shapefiles géospatiaux complexes. Les villes choisies — Brest, Marseille, Nice, Biarritz, Toulon — offrent une représentation assez équilibrée du littoral français métropolitain, englobant les façades atlantique, méditerranéenne et de la Manche.

Ce sous-ensemble est élaboré à partir d’un tibble, un format moderne conçu pour le traitement vectoriel.

On procède ensuite à l’importation du jeu de données principal relatif aux incendies depuis un fichier CSV.

Ce document renferme les données géographiques exactes de chaque évènement (latitude, longitude), qui est une supposition cruciale du modèle.

Une étape de prétraitement est mise en place afin d’écarter les enregistrements incomplets, une démarche indispensable dans tout processus de données scientifiques assurant la solidité statistique et informatique des étapes suivantes.

L’analyse géographique proprement dite débute avec le calcul de la distance minimale entre chaque feu et tous les points côtiers.

Ce mécanisme est réalisé grâce à l’emploi de la fonction map2_dbl() de purrr, utilisée en parallèle avec distVincentySphere() pour produire une série de distances pour chaque point d’incendie, parmi lesquelles la distance minimale est sélectionnée.

Cette opération, réalisée ligne par ligne grâce à rowwise(), représente une méthode algorithmique claire, qui permet de reproduire le comportement d’une fonction vectorisée dans un contexte non spatial.

Suite au calcul des distances, le script effectue une classification en trois catégories distinctes et compréhensibles : proximité immédiate (<10 km), proximité modérée (10–50 km) et éloignement (>50 km).

Cette démarche convertit une mesure continue en une variable catégorique, facilitant ainsi l’analyse statistique descriptive et la représentation graphique.

Ce genre de discrétisation est crucial pour organiser l’information dans des contextes de prise de décision ou d’explication scientifique.

Le comptage (count()) permet ensuite de résumer l’information en termes de fréquences par classe de distance, constituant ainsi le fondement du graphe final.

Celui-ci, élaboré à l’aide de ggplot2, utilise une représentation par des barres colorées, avec des nuances chaudes (YlOrRd) qui suggèrent de manière intuitive la magnitude ou la sévérité du phénomène incendiaire.

L’option de la palette et l’élimination de la légende visuelle reflètent un désir de clarté et d’efficacité visuelle.

Pour finir, la mise en forme finale utilise un design minimaliste et épuré (theme_minimal()), associée à un titre attractif et une inclinaison partielle des labels de l’axe des abscisses. Le tout témoigne d’une réflexion approfondie sur la présentation des résultats, en mettant l’accent autant sur l’esthétisme de la représentation visuelle que sur sa précision scientifique.

2- Analyse Statistique:

Le graphique nommée « Risque d’incendie et proximité à la côte : Analyse par distance minimale à des villes côtières » offre une représentation graphique des informations concernant le nombre d’incendies en rapport avec leur éloignement minimal des cités côtières.

L’axe des abscisses divise les distances en trois catégories : « Loin de la côte (>50 km) », « Modéré (10-50 km) » et « Près de la côte (<10 km) ».

L’axe vertical représente le nombre d’incendies, avec une échelle qui varie de 0 à 800.

Cette recherche se situe dans le cadre des incendies en France, une nation où les feux de forêt et les incendies secondaires sont des enjeux primordiaux, particulièrement dans les zones méditerranéennes telles que le sud-est (Provence-Alpes-Côte d’Azur) et la Corse, qui sont situées près des côtes et exposées à un climat favorable aux incendies (sécheresse, vents puissants comme le mistral).

Pour établir les fondements de l’interprétation dans le cadre de cette analyse, il est nécessaire de définir plusieurs notions statistiques et géographiques :

  • Proximité à la côte : L’évaluation de la distance minimale vers une ville côtière se fait en calculant la distance géodésique (en kilomètres) entre l’emplacement de l’incendie et la cité côtière la plus proche. Le graphique emploie des catégories (« <10 km », « 10-50 km », « >50 km ») qui représentent une transformation de cette variable continue en classes distinctes, une démarche fréquemment adoptée en statistique pour simplifier l’étude des tendances.

  • Risque d’incendie : Le danger d’incendie est une évaluation probabiliste qui fusionne la probabilité qu’un incendie se produise et ses impacts éventuels. Il est affecté par des éléments biotiques (plantes, type de couverture forestière) et abiotiques (température, humidité, courant d’air). Dans le domaine de la statistique, ce risque peut être représenté à l’aide de distributions de Poisson pour les événements peu fréquents, ou via des modèles de régression spatiale afin d’inclure des covariables géographiques.

Le diagramme se présente sous la forme d’un histogramme simple comportant trois barres, chaque barre symbolisant une catégorie de distance par rapport à la côte.

L’altitude des barres représente le nombre d’incendies dans chaque catégorie.

Une première analyse révèle une disparité marquée entre les différentes catégories :

  • Loin de la côte (>50 km) : Environ 745 incendies, la catégorie la plus élevée.
  • Modéré (10-50 km) : Environ 92 incendies, une baisse significative.
  • Proche de la côte (<10 km) : Environ 8 incendies, la catégorie la plus faible.

L’assignation est fortement déséquilibrée, affichant une concentration notable des incendies dans les régions situées à plus de 50 km des côtes.

Cette constatation indique un lien inverse entre la proximité du littoral et le nombre d’incendies, une supposition que nous allons vérifier statistiquement par la suite.

Pour une analyse plus précise, calculons les ratios et les fréquences proportionnelles.

On peut supposer que le nombre total d’incendies observés correspond à la somme des trois catégories, soit près de 745+92+8 = 845 incendres (chiffres approximatifs basés sur une interprétation visuelle du graphique).

  • Loin de la côte (>50 km): 745/845 ≈ 88,1 % des incendies.
  • Modéré (10-50 km) : 92/845 ≈ 10.88 % des incendies.
  • Proche de la côte (<10 km): 8/845 ≈ 0.95 % des incendies.

Ces pourcentages suggèrent que plus de 90 % des feux ont lieu à plus de 50 km des villes côtières, une tendance qui pourrait témoigner des divergences en termes de caractéristiques géographiques, climatiques ou humaines entre les régions côtières et les zones intérieures en France.

L’importante occurrence des incendies à plus de 50 km des côtes peut être attribuée à divers éléments liés aux aspects géographiques et météorologiques de la France :

  • Végétation et climat : Les régions intérieures, telles que les forêts des Cévennes, des Alpes ou des Landes, ont généralement une couverture forestière plus dense et un climat plus sec que les zones côtières, où l’humidité de la mer peut diminuer le danger d’incendie.Dans l’Hexagone, les territoires méditerranéens (habituellement situés près du littoral) subissent des incendies, cependant, les régions arides situées à l’intérieur peuvent se révéler davantage exposées du fait de la densité de la végétation combustibles (pins, garrigue).

  • Activité humaine: Les régions qui se trouvent loin des côtes peuvent comprendre des zones rurales ou agricoles où des activités telles que la pratique du brûlage agricole ou l’emploi de machines intensifient le danger d’un incendie.Les régions côtières, fréquemment urbanisées (comme Nice et Marseille), pourraient profiter d’infrastructures améliorées pour la prévention et les interventions rapides.

  • Conditions météorologiques: Des incendies peuvent être déplacés sur de vastes étendues par des vents secs tels que le mistral, qui souffle dans le sud de la France. Cependant, leur impact est généralement modéré près du littoral en raison de l’humidité marine. En revanche, les conditions chaudes et sèches sont plus susceptibles d’affecter les zones intérieures.

Le faible nombre d’incendies près des côtes (<10 km) pourrait également refléter une densité de population plus élevée, avec des paysages plus urbanisés et moins de végétation inflammable.

Cependant, des exceptions existent, comme les incendies côtiers en Corse, où la proximité de la mer n’empêche pas les feux en raison de la topographie et de la végétation.

Test du Chi deux:

library(tidyverse)
library(geosphere)

df_incendies <- read_csv("../Data/donnees_geo.csv")
## Rows: 845 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): code_INSEE
## dbl (3): latitude, longitude, altitude_med
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
villes_cotieres <- tibble(
  ville = c("Brest", "Marseille", "Nice", "Biarritz", "Toulon"),
  lat = c(48.3904, 43.2965, 43.7102, 43.4832, 43.1242),
  lon = c(-4.4861, 5.3698, 7.2620, -1.5586, 5.9281)
)

df_incendies <- df_incendies %>%
  filter(!is.na(longitude), !is.na(latitude)) %>%
  rowwise() %>%
  mutate(
    distance_min = min(
      map2_dbl(
        villes_cotieres$lon, villes_cotieres$lat,
        ~ distVincentySphere(c(longitude, latitude), c(.x, .y))
      ) / 1000  # en kilomètres
    )
  ) %>%
  ungroup()

df_incendies <- df_incendies %>%
  mutate(
    categorie_distance_cote = case_when(
      distance_min <= 10 ~ "Proche de la côte (<10 km)",
      distance_min <= 50 ~ "Modéré (10-50 km)",
      distance_min > 50 ~ "Loin de la côte (>50 km)",
      TRUE ~ "Inconnu"
    )
  )

frequences_observees <- df_incendies %>%
  count(categorie_distance_cote) %>%
  filter(categorie_distance_cote != "Inconnu")

total <- sum(frequences_observees$n)
expected <- rep(total / nrow(frequences_observees), nrow(frequences_observees))

test_chi2 <- chisq.test(frequences_observees$n, p = rep(1 / nrow(frequences_observees), nrow(frequences_observees)))

print(frequences_observees)
## # A tibble: 3 × 2
##   categorie_distance_cote        n
##   <chr>                      <int>
## 1 Loin de la côte (>50 km)     775
## 2 Modéré (10-50 km)             66
## 3 Proche de la côte (<10 km)     4
print(test_chi2)
## 
##  Chi-squared test for given probabilities
## 
## data:  frequences_observees$n
## X-squared = 1302.9, df = 2, p-value < 2.2e-16

Nous avons fait référence au test du Chi-Deux d’adéquation, une méthode statistique, pour comparer les fréquences observées dans diverses catégories à celles qui seraient attendues en supposant une uniformité.

Nous avons donc établi deux suppositions :

  • Hypothèse nulle (H₀) : La répartition des incendies est uniforme parmi les trois classes de distance à la mer.Cela implique qu’il existe une chance identique d’apparition dans chaque catégorie.

  • Hypothèse alternative (H₁): La distribution des incendies n’est pas équitable. En d’autres termes, il y a un écart notable entre les fréquences observées et celles prévues, ce qui laisse supposer un impact de la proximité du littoral.

Avec une valeur du Chi-Deux de 1302.9 et un degré de liberté de 2, nous avons une valeur p très minuscule, inférieure à 0.0001, démontrant que la différence entre les fréquences observées et attendues est fortement significative.

La valeur p dénote la probabilité que l’écart entre les fréquences observées et anticipées soit le résultat du hasard. Une petite valeur p indique que nous pouvons refuser l’hypothèse nulle avec une grande certitude.

L’analyse du Chi-Deux nous indique que la distribution des incendies n’est pas uniforme entre les trois catégories de distance à la côte.

En conclusion, cette analyse statistique révèle une relation inverse marquée entre la proximité des villes côtières et le nombre d’incendies en France, avec plus de 90 % des incendies survenant à plus de 50 km des côtes.

5.3.4 Urbanisation et activités humaines

5.3.4.1 Comparaison des incendies entre les zones rurales et urbaines
library(tidyverse)

df_incendies <- read_csv("../Data/donnees_incendies.csv")
## Rows: 1202 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): commune, code_INSEE, mois, nature_inc_prim, nature_inc_sec
## dbl (4): surface_parcourue_m2, annee, jour, heure
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_geo <- read_csv("../Data/donnees_geo.csv")
## Rows: 845 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): code_INSEE
## dbl (3): latitude, longitude, altitude_med
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_incendies <- df_incendies %>%
  mutate(code_INSEE = str_pad(code_INSEE, 5, pad = "0"))

df_geo <- df_geo %>%
  mutate(code_INSEE = str_pad(code_INSEE, 5, pad = "0"))

df_merged <- df_incendies %>%
  left_join(df_geo, by = "code_INSEE")

df_merged <- df_merged %>%
  mutate(categorie_altitude = case_when(
    altitude_med < 200 ~ "Plaine (<200m)",
    altitude_med >= 200 & altitude_med < 500 ~ "Collines (200-500m)",
    altitude_med >= 500 ~ "Montagne (>500m)",
    TRUE ~ "Inconnu"
  ))

freq_altitude <- df_merged %>%
  count(categorie_altitude, name = "n_incendies") %>%
  filter(!is.na(categorie_altitude))

print(freq_altitude)
## # A tibble: 3 × 2
##   categorie_altitude  n_incendies
##   <chr>                     <int>
## 1 Collines (200-500m)         277
## 2 Montagne (>500m)            327
## 3 Plaine (<200m)              598
ggplot(freq_altitude, aes(x = categorie_altitude, y = n_incendies, fill = categorie_altitude)) +
  geom_col(width = 0.6, color = "white") +
  labs(
    title = "🔥 Répartition des incendies selon l'altitude moyenne des communes",
    x = "Catégorie d'altitude",
    y = "Nombre d'incendies"
  ) +
  scale_fill_brewer(palette = "Oranges") +
  theme_minimal() +
  theme(legend.position = "none")

if (nrow(freq_altitude) > 1) {
  test_chi2 <- chisq.test(freq_altitude$n_incendies)
  print(test_chi2)
}
## 
##  Chi-squared test for given probabilities
## 
## data:  freq_altitude$n_incendies
## X-squared = 148.9, df = 2, p-value < 2.2e-16

1- Analyse Informatique:

La première phase de l’étude vise à fusionner deux ensembles de données différents : le premier comprend les détails concernant les feux (nature, date, heure, etc.), tandis que le second décrit les propriétés géographiques des communes (latitude, longitude, altitude).

Le code INSEE, qui est un identifiant unique pour chaque commune, constitue la liaison entre ces deux fichiers.

Avant de procéder à la fusion des données, une normalisation de ce champ est effectuée grâce à la méthode str_pad() pour s’assurer que tous les codes ont exactement 5 caractères, prévenant ainsi d’éventuelles erreurs de correspondance.

Cette phase de purification est indispensable pour assurer l’intégrité de la fusion des bases de données.

Après la fusion de la base, nous utilisons le paramètre altitude_med pour classifier les communes en fonction de leur élévation moyenne.

On distingue trois catégories : Plaine (inférieure à 200m), Collines (200-500m) et Montagne (supérieure à 500m).

Cette segmentation facilite l’analyse tout en préservant une clarté dans la distinction des environnements.

Ce niveau est ici employé comme un indice indirect de la ruralité : les municipalités situées en plaine, généralement plus peuplées, peuvent être perçues comme étant plus urbaines, alors que celles situées en altitude (en particulier dans les zones montagneuses) ont plus de chances d’être rurales.

L’assemblage des incendies selon le niveau d’altitude permet de déterminer si certains milieux géographiques sont davantage sujets aux départs de feu.

Un diagramme à barres est créé avec ggplot2 pour illustrer les résultats. Chaque barre illustre le total des incendies signalés dans les communes qui se trouvent dans l’une des trois catégories d’altitude.

Ce diagramme facilite l’identification immédiate d’une éventuelle concentration excessive d’incendies dans certaines régions.

Pour approfondir l’analyse, nous utilisons un test du chi² pour déterminer statistiquement si la distribution des incendies en fonction des classes d’altitude diffère de ce que l’on pourrait anticiper dans le cadre d’une hypothèse de distribution uniforme.

Un p-value considérablement bas (< 0.05) suggérerait que l’altitude, et par extension possiblement le niveau de ruralité, est un élément qui affecte la fréquence des incendies.

2- Analyse Statistique:

Le diagramme est un histogramme élémentaire, composé de trois colonnes qui illustrent les classes d’altitude, chacune dépeinte dans une nuance de rouge symbolisant la force du feu : un rouge clair pour les « Collines (200-500m) », un rouge intermédiaire pour la « Montagne (>500m) », et un rouge plus soutenu pour la « Plaine (<200m) ».

On remarque tout de suite une première constatation : les plaines dominent sans conteste, avec presque 600 incendies, alors que les collines et les montagnes montrent des chiffres considérablement plus faibles, avec environ 300 et 200 incendies respectivement.

Ce contraste visuel est frappant : les zones basses paraissent être un lieu en proie aux flammes, alors que les régions élevées offrent une certaine sécurité face au feu.

Estimons les fréquences approximatives pour chaque catégorie d’altitude

  • Plaine (<200m): 598 incendies.
  • Collines (200-500m): 277 incendies.
  • Montagne (>500m):327 incendies.

Le total des incendies sur l’ensemble des catégories s’élève à environ 1100 incendies.

Calculons la répartition relative pour mieux comprendre la contribution de chaque catégorie :

  • Plaine (<200m): 598 / 1202 ≈ 49.75 %.
  • Collines (200-500m): 277 / 1202 ≈ 23.04 %.
  • Montagne (>500m): 327 / 1202 ≈ 27,20 %.

Plus de la moitié des incendies se produisent dans les plaine, une statistique qui attire l’attention et indique une sensibilité spécifique aux feux à basse altitude.

Bien que les montagnes se classent en second, leur occurrence est nettement inférieure, tandis que les collines semblent être les moins affectées.

Cette dissémination inégale suscite des interrogations passionnantes : pourquoi y a-t-il autant d’incendies dans les plaines, et qu’est-ce qui préserve les hauteurs ?

La domination des plaines dans la répartition des incendies est indéniable : avec 49.75 % des incidents, elles surpassent largement les autres catégories d’altitude. Les montagnes, bien qu’atteignant 27,2 % des incendies, sont deux fois moins touchées que les plaines, et les collines, avec seulement 23.04 %, semblent être les moins vulnérables.

Cette distribution inégale indique une relation claire entre l’altitude et la fréquence des incendies : plus l’altitude est basse, plus le risque d’incendie semble élevé.

Qu’est-ce qui rend les plaines si susceptibles aux incendies ?

Cette concentration impressionnante peut s’expliquer par plusieurs facteurs. Pour commencer, les plaines sont souvent des régions fortement peuplées, où se trouvent des villes, des villages et des territoires cultivés.

Cette importante concentration de population accroît les risques d’incendie, qu’ils aient lieu accidentellement (à l’instar des incendies secondaires représentés dans le premier graphique) ou intentionnellement (par exemple, les incendies délibérés mentionnés dans les graphiques précédents).

Les actions humaines telles que l’agriculture, l’industrialisation et l’urbanisation augmentent les risques : la présence de champs de blé desséchés durant l’été, d’entrepôts contenant des matériaux combustibles ou de résidences construites à proximité les unes des autres favorise la diffusion du feu.

Par la suite, les conditions écologiques des plaines ont une importance capitale. Les températures à basse altitude ont tendance à être plus hautes, principalement durant l’été (comme illustré dans le graphique de répartition mensuelle, qui montre un maximum en juillet-août).

Dans ces zones, la sécheresse régulière dessèche la flore et les terres, constituant un environnement favorable aux feux de forêt.

En outre, les plaines sont généralement soumises à des vents plus réguliers et moins entravés par le relief, ce qui peut favoriser la diffusion des flammes une fois un incendie allumé.

Les collines, en raison de leur fréquence plus faible, pourraient bénéficier d’une protection naturelle.

Entre 200 et 500 mètres d’altitude, la diversité de la végétation est généralement plus importante, avec des zones moins arides comparées à la plaine, et les températures y sont un peu plus fraîches.

Par ailleurs, les collines ont souvent une densité de population plus faible, diminuant ainsi les chances d’incendies intentionnels ou accidentels.

Cependant, leur terrain accidenté peut entraver l’accès aux secours, ce qui pourrait exacerber les incendies une fois allumés, même si leur occurrence demeure moins fréquente.

Les montagnes affichent une dynamique complexe, avec un rythme qui se situe entre le régulier et l’irréguier.

Au-delà de 500 mètres, les températures plus basses et une humidité possiblement plus importante (en raison des précipitations orographiques) peuvent freiner l’avancement des feux.

Toutefois, les forêts touffues, souvent présentes en montagne, représentent une source significative de combustible, particulièrement lorsqu’elles sont asséchées durant l’été.

Bien que les feux de montagne soient moins courants, ils peuvent s’avérer plus difficiles à maîtriser en raison des terrains escarpés et du manque d’accessibilité des communes, ce qui pourrait justifier leur fréquence notable par rapport aux collines.

5.3.4.2 Activités humaines à risque (travaux/particuliers)
5.3.4.3 Profil temporel des incendies criminels
5.3.4.3.1 Profil horaire des incendies criminels
library(tidyverse)
library(lubridate)

df <- read_csv("../Data/donnees_incendies.csv")
## Rows: 1202 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): commune, code_INSEE, mois, nature_inc_prim, nature_inc_sec
## dbl (4): surface_parcourue_m2, annee, jour, heure
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_malveillance <- df %>%
  filter(str_detect(tolower(nature_inc_prim), "malveillance"))

df_malveillance <- df_malveillance %>%
  mutate(
    heure_num = as.numeric(str_sub(heure, 1, 2)),
    tranche_horaire = case_when(
      heure_num >= 0 & heure_num < 6 ~ "Nuit (00h-06h)",
      heure_num >= 6 & heure_num < 12 ~ "Matin (06h-12h)",
      heure_num >= 12 & heure_num < 18 ~ "Après-midi (12h-18h)",
      heure_num >= 18 & heure_num < 24 ~ "Soir (18h-00h)",
      TRUE ~ "Heure inconnue"
    )
  )

ggplot(df_malveillance, aes(x = tranche_horaire, fill = tranche_horaire)) +
  geom_bar(width = 0.7, color = "white") +
  labs(
    title = "⏰ Profil horaire des incendies criminels",
    x = "Tranche horaire",
    y = "Nombre d'incendies"
  ) +
  scale_fill_brewer(palette = "Reds") +
  theme_minimal() +
  theme(legend.position = "none")

1- Analyse Informatique:

En premier lieu, les données ont été sélectionnées pour ne garder que les incendies de nature malveillante.

Ceci a été accompli en utilisant la fonction filter() de dplyr, couplée à l’usage de str_detect(), qui recherche la présence du mot « malveillance » dans la colonne nature_inc_prim.

Ce filtrage est crucial, puisqu’il assure que l’analyse se focalise exclusivement sur les incendies d’origine criminelle, évitant ainsi l’inclusion d’événements causés par des facteurs naturels ou accidentels.

Par la suite, l’élément horaire a été dérivé de la colonne heure.

L’heure a été obtenue en format numérique grâce à la fonction str_sub() et transformée en format numérique pour simplifier les opérations ultérieures.

Ces données horaires ont par la suite été réparties en différentes plages horaires, à savoir : « Nuit (00h-06h) », « Matin (06h-12h) », « Après-midi (12h-18h) » et « Soir (18h-00h) ».

Cette conversion a rendu possible la classification des incendies en fonction des moments précis de la journée, ce qui simplifie leur analyse comparative.

Ce graphique produit à partir de ces informations emploie un histogramme pour illustrer le nombre d’incendies criminels selon les plages horaires.

L’axe des x présente les différentes plages horaires, tandis que l’axe des y montre le nombre d’incendies observés pour chaque plage horaire.

Chaque barre du graphique illustre une plage horaire précise et son niveau de remplissage est teinté selon la gamme de couleurs Reds, parfaitement appropriée pour visualiser la fréquence des événements (plus la couleur est sombre, plus la fréquence se révèle être importante).

Il n’y a pas de légende sur le graphique, car la couleur des barres sert déjà à distinguer chaque intervalle horaire.

2- Analyse Statistique:

Le diagramme nommé « Profil horaire des incendies criminels » représente la distribution des incendies criminels sur une durée de 24 heures, segmentée en quatre intervalles horaires spécifiques : « Matin (06h-12h) », « Après-midi (12h-18h) », « Soir (18h-00h) », et « Nuit (00h-06h) ».

L’axe horizontal illustre ces intervalles de temps, alors que l’axe vertical dénote le nombre d’incendies, sur une échelle qui varie de 0 à 350.

Cette étude vise à scruter la répartition des incendies criminels selon les moments de la journée, à déterminer les créneaux horaires les plus problématiques, à analyser les facteurs susceptibles d’expliquer ces fluctuations, et à débattre des conséquences statistiques et opérationnelles de ces découvertes dans un cadre de prévention et d’investigation.

Le diagramme est un histogramme basique où chaque barre représente un créneau horaire de 6 heures, englobant ainsi la totalité de la journée.

Chaque segment est représenté par une barre de couleur distincte : un rose clair pour l’« Après-midi (12h-18h) », un rose moyen pour le « Matin (06h-12h) », un rouge sombre pour le « Soir (18h-00h) » et un rouge plus pâle pour la « Nuit (00h-06h) ».

Une première analyse révèle une variation significative dans la fréquence des incendies criminels en fonction des plages horaires.

L’intervalle « Après-midi (12h-18h) » montre la plus grande fréquence, frôlant les 350 incendies, alors que l’intervalle « Nuit (00h-06h) » enregistre la fréquence la plus faible, avec environ 50 incendies.

Les plages horaires « Matin (06h-12h) » et « Soir (18h-00h) » se positionnent à des niveaux moyens, avec des fréquences estimées respectivement autour de 75 et 80 incendies.

Cette représentation indique une importante occurrence des incendies criminels durant l’après-midi, ce qui pourrait témoigner de dynamiques comportementales, sociales ou environnementales propres à ce moment de la journée.

Pour effectuer une analyse quantitative précise, procédons à l’estimation des fréquences à partir du graphique.

  • Après-midi (12h-18h): ~325 incendies.
  • Soir (18h-00h): ~80 incendies.
  • Matin (06h-12h): ~35 incendies.
  • Nuit (00h-06h): ~82 incendies.

Test du Chi-Deux - Hypothèse nulle (H0) : Les incendies criminels sont répartis de manière uniforme parmi les différentes tranches horaires (“Nuit”, “Matin”, “Après-midi”, “Soir”). - Hypothèse alternative (H1) : La répartition des incendies criminels varie entre les différentes tranches horaires.

library(tidyverse)
df <- read_csv("../Data/donnees_incendies.csv")
## Rows: 1202 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): commune, code_INSEE, mois, nature_inc_prim, nature_inc_sec
## dbl (4): surface_parcourue_m2, annee, jour, heure
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_malveillance <- df %>%
  filter(str_detect(tolower(nature_inc_prim), "malveillance"))
df_malveillance <- df_malveillance %>%
  mutate(
    heure_num = as.numeric(str_sub(heure, 1, 2)),
    tranche_horaire = case_when(
      heure_num >= 0 & heure_num < 6 ~ "Nuit (00h-06h)",
      heure_num >= 6 & heure_num < 12 ~ "Matin (06h-12h)",
      heure_num >= 12 & heure_num < 18 ~ "Après-midi (12h-18h)",
      heure_num >= 18 & heure_num < 24 ~ "Soir (18h-00h)",
      TRUE ~ "Heure inconnue"
    )
  )
freq_observees <- df_malveillance %>%
  count(tranche_horaire)
total_incendies <- sum(freq_observees$n)
freq_attendues <- rep(total_incendies / nrow(freq_observees), nrow(freq_observees))
test_chi2 <- chisq.test(freq_observees$n, p = rep(1/nrow(freq_observees), nrow(freq_observees)), rescale.p = TRUE)
test_chi2
## 
##  Chi-squared test for given probabilities
## 
## data:  freq_observees$n
## X-squared = 397.34, df = 3, p-value < 2.2e-16

Cela signifie que nous rejetons l’hypothèse nulle et acceptons l’hypothèse alternative, concluant ainsi que la répartition des incendies criminels n’est pas uniforme entre les tranches horaires. Ce résultat montre que certains moments de la journée ou de la nuit sont plus propices aux actes criminels, suggérant un comportement influencé par des facteurs temporels.

5.3.4.3.2 Répartition mensuelle des incendies malveillants
df_malveillance <- df_malveillance %>%
  mutate(
    heure_num = as.numeric(str_sub(heure, 1, 2)),
    tranche_horaire = case_when(
      heure_num >= 0 & heure_num < 6 ~ "Nuit (00h-06h)",
      heure_num >= 6 & heure_num < 12 ~ "Matin (06h-12h)",
      heure_num >= 12 & heure_num < 18 ~ "Après-midi (12h-18h)",
      heure_num >= 18 & heure_num < 24 ~ "Soir (18h-00h)",
      TRUE ~ "Heure inconnue"
    )
  )
df_malveillance <- df_malveillance %>%
  mutate(mois = factor(mois, levels = month.abb))  # Jan, Feb, ..., Dec

ggplot(df_malveillance, aes(x = mois, fill = mois)) +
  geom_bar(width = 0.7, color = "white") +
  labs(
    title = "📆 Répartition mensuelle des incendies malveillants",
    x = "Mois",
    y = "Nombre d'incendies"
  ) +
  scale_fill_brewer(palette = "Reds") +
  theme_minimal() +
  theme(legend.position = "none")
## Warning in RColorBrewer::brewer.pal(n, pal): n too large, allowed maximum for palette Reds is 9
## Returning the palette you asked for with that many colors

1- Analyse Informatique:

La première phase de cette étude implique l’organisation des données pour assurer leur interprétation et présentation correctes.

Dans ce cas, nous avons employé la colonne indiquant les mois, qui était initialement présentée sous forme d’abréviations (par exemple, « Jan », « Feb »), mais de manière désordonnée.

Afin d’assurer une représentation précise sur le graphique, les mois ont été transformés en un facteur avec des niveaux qui correspondent à la séquence naturelle du calendrier (de janvier à décembre). Cette étape est cruciale, car elle assure que les mois seront présentés dans l’ordre chronologique approprié sur le graphique, facilitant ainsi une analyse précise de la tendance mensuelle des incendies.

Après traitement des données, un diagramme à barres est mis en place pour illustrer le nombre de feux criminels par mois au cours de l’année.

Sur le graphique, chaque barre illustre un mois, et sa hauteur indique le nombre d’incendies qui se sont produits durant ce mois spécifique.

L’emploi d’un diagramme à barres facilite une comparaison entre les divers mois, mettant en évidence instantanément quels mois présentent un nombre supérieur ou inférieur d’incendies criminels.

L’utilisation d’une gamme de couleurs « Reds » souligne aussi les fluctuations dans la force des incendies, des teintes plus éclatantes signalant des phases d’activité criminelle accrue.

L’étude du graphique facilite l’identification des tendances saisonnières ou mensuelles. Si certaines barres semblent manifestement plus élevées que d’autres, cela indique que les actes criminels liés aux incendies ont lieu plus fréquemment à certains mois.

Par exemple, si l’on observe des pics pendant les mois d’été, cela peut suggérer que les incendies criminels sont liés à des éléments climatiques comme des chaleurs plus intenses et une augmentation de l’activité extérieure, souvent favorables à ce genre de méfait.

2- Analyse Statistique:

Le diagramme est une représentation sous forme d’histogramme où chaque colonne symbolise un mois de l’année, teintée dans des nuances de rouge allant du plus clair (janvier) au plus soutenu (septembre).

Cette progression chromatique génère une perception visuelle de montée et descente, qui reflète les fluctuations dans la fréquence des feux malveillants. Un premier constat met en lumière une disparité marquée : les mois de juillet et août se démarquent nettement avec des occurrences avoisinant les 150 incendies, tandis que mai se retrouve à son niveau le plus bas, comptabilisant à peine une dizaine d’incendies. Les autres mois varient entre ces pôles, créant une courbe qui paraît refléter un cycle saisonnier.

Janvier : 15 incendies. Février : 26 incendies. Mars : 41 incendies. Avril : 28 incendies. Mai : 6 incendies. Juin : 39 incendies. Juillet : 124 incendies. Août : 136 incendies (maximum). Septembre : 69 incendies. Octobre : 26 incendies. Novembre : 6 incendies. Décembre : 6 incendies.

En regroupant ces évaluations, le nombre annuel d’incendies intentionnels se chiffre à près de 522.

Juillet et août, qui sont les mois d’été, constituent une part importante, représentant presque 48 % du total (260 / 522 ≈ 49,8%).

Par contre, le mois de mai se remarque comme une exception, avec seulement 1,15 % des incendies (6 sur 522).

Cette distribution mensuelle illustre une courbe en forme de cloche asymétrique, centrée autour de l’été, présentant des extrémités basses en début et fin d’année.

Sans aucun doute, l’été est la saison la plus cruciale, regroupant plus de la moitié des feux criminels annuels.

Les mois de juillet et août, enregistrant respectivement 124 et 136 incendies, constituent un sommet estival remarquable qui laisse penser à une recrudescence de l’activité criminelle durant cette période.

Toutefois, bien que le printemps se caractérise par une certaine constance en mars et avril, il est surtout marqué par un net déclin en mai, qui semble presque épargné par les feux malintentionnés.

Pour ce qui est de l’hiver et de l’automne, ils présentent des occurrences basses et assez constantes, variant entre 10 et 40 feux mensuels, avec une petite augmentation en septembre (69 feux), qui pourrait signaler un passage de l’été vigoureux à l’automne plus tranquille.

Cette répartition saisonnière n’est pas régulière : l’été se distingue comme une phase de crise, alors que le reste de l’année présente une criminalité plus tempérée, interrompue par l’irrégularité de mai.

Cette périodicité indique des éléments saisonniers ou comportementaux qui nécessitent une étude détaillée.

Pour résumer, cette étude sur la distribution mensuelle des incendies criminels met en lumière un fait accablant : l’été, en particulier les mois de juillet et août, est la période privilégiée pour les feux criminels, représentant près de 48 % des incidents sur l’année.

Ce pic estival, associé aux schémas horaires des graphiques antérieurs (12h-18h pour les incendies criminels, 15h-21h pour les secondaires), fournit une vision précise des moments critiques : les chaudes après-midi d’été.

5.3.4.4 Facteurs prédictifs des incendies criminels

Analyse de la répartition es incendies criminels en fonction de la température

  library(ggplot2)
  
  donnees_combinees<- read.csv("../Exports/export_incendies_criminels.csv")
  library(ggplot2)
  
  ggplot(donnees_combinees, aes(x = tmax_med, fill = nature_inc_prim)) +
    geom_histogram(position = "dodge", bins = 30, alpha = 0.7) +  # Slight transparency for better visibility
    scale_fill_manual(values = c("#FF6347", "#4682B4", "#32CD32", "#FFD700")) +  # Custom colors for the fill
    labs(
      title = "Distribution de la Température Maximale en Fonction de la Nature des Incendies",
      x = "Température Maximale (°C)",  # More specific axis label
      y = "Fréquence",  # More specific y-axis label
      fill = "Nature des Incendies"  # Label for the fill legend
    ) +
    theme_minimal() +  
    theme(
      plot.title = element_text(size = 16, face = "bold", color = "darkblue", hjust = 0.5),  # Title styling
      axis.title.x = element_text(size = 14, face = "bold", color = "black"),  # X-axis title styling
      axis.title.y = element_text(size = 14, face = "bold", color = "black"),  # Y-axis title styling
      axis.text = element_text(size = 12, color = "black"),  
      legend.title = element_text(size = 12, face = "bold"), 
      legend.text = element_text(size = 11)  
    ) +
    theme(axis.line = element_line(size = 0.8, color = "black"))  
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Analyse Informatique

La première ligne de code, library(ggplot2), sert à importer la bibliothèque ggplot2 dans R.

Cette librairie est réputée pour sa capacité à produire des graphiques élégants et personnalisables.

En substance, elle offre la possibilité de créer des visualisations en superposant des couches, à l’image d’un dessin progressif : commencer par les données, puis passer aux formes, aux couleurs, et ainsi de suite.

Ici, on la charge afin de pouvoir exploiter ses fonctionnalités par la suite.

Le code contient deux appels à la bibliothèque ggplot2, alors qu’un seul est nécessaire. En effet, R ne chargerait pas deux fois la même ressource — c’est une redondance superflue.

Puis, on a utilisé la commande données_combinees <- read.csv(“../Exports/export_incendies_criminels.csv”) pour lire le fichier CSV.

Cette ligne est cruciale :

elle s’applique à un fichier CSV (un tableau séparé par des virgules, semblable à celui d’Excel) nommé export_incendies_criminels.csv, situé dans un répertoire dénommé Exports, qui se trouve un niveau au-dessus du répertoire courant (le ../ signifie cela).

La fonction read.csv interprète ce fichier et le convertit en un tableau de données dans R, connu sous le nom de data frame.

La variable donnees_combinees contient ce tableau.

Il est supposé que ce document renferme des renseignements concernant les incendies, incluant des colonnes telles que tmax_med (probablement la température maximale) et nature_inc_prim (le genre d’incendie).

Si le fichier n’existe pas ou si le chemin est faux, ça planterait direct avec une erreur.

Le travail concret débute avec ggplot(donnees_combinees, aes(x = tmax_med, fill = nature_inc_prim)).

Il s’agit du fond du graphique.On utilise les données combinées comme référence, et aes() (pour « aesthetics ») définit comment les disposer.

Dans ce contexte, x = tmax_med indique que la température maximale est représentée sur l’axe horizontal (l’axe des x), tandis que fill = nature_inc_prim signifie que les couleurs des barres sont déterminées par la catégorie d’incendie.

Par exemple, si nature_inc_prim présente des valeurs telles que « criminel » ou « accidentel », chaque catégorie se verra attribuer une couleur distincte.

Cette ligne n’est pas encore définie, elle sert simplement à préparer le terrain.

Ensuite, on intègre geom_histogram(position = “dodge”, bins = 30, alpha = 0.7).

C’est là que se trouve vraiment l partie qui trace le graphique. geom_histogram génère un histogramme, qui est une catégorie de diagramme où l’on dénombre le nombre d’occurrences d’une valeur (dans ce cas tmax_med) dans divers intervalles.

Les bins = 30 répartissent les températures en 30 petites catégories afin de constituer les histogrammes.position = « dodge » fait que les barres de chaque catégorie d’incendie sont placées l’une à côté de l’autre plutôt qu’empilées, ce qui facilite la comparaison.

Avec alpha fixé à 0.7, les barres deviennent légèrement transparentes (de 0 pour invisible à 1 pour opaque), ce qui est utile si elles se superposent, afin de mettre en évidence les détails.

Par la suite, on utilise scale_fill_manual(values = c(“#FF6347”, “#4682B4”, “#32CD32”, “#FFD700”)). Cette ligne sélectionne les teintes des barres.

Des codes tels que #FF6347 représentent des valeurs hexadécimales, indiquant à la machine quelle teinte appliquer (dans ce cas, rouge tomate, bleu acier, vert citron et jaune doré).

Cela implique l’existence de quatre catégories distinctes d’incendies dans nature_inc_prim.

Si le nombre n’est pas adéquat, cela pourrait causer des soucis : un excès de types entraîne une répétition des couleurs ; une carence, et certaines teintes deviennent inutiles.

C’est une personnalisation agréable pour améliorer l’aspect et la clarté du graphique.

Par la suite, labs(…) appose des étiquettes pour assurer une lisibilité parfaite.

Le titre long : « Distribution de la Température Maximale en Fonction de la Nature des Incendies » décrit précisément ce qu’on examine.

x = “Température Maximale (°C)” modifie le nom de l’axe horizontal pour qu’il soit plus explicite que simplement « tmax_med », tandis que y = « Fréquence » signifie que l’axe vertical représente le nombre d’observations dans chaque colonne.

Finalement, fill = “Nature des Incendies” attribue un titre à la légende, indiquant quelle couleur correspond à quel type d’incendie.

Cela rend le graphique simple à interpréter, même pour une personne qui n’est pas familière avec les données.

theme_minimal() offre un style épuré et minimaliste, avec un fond blanc et une absence de lignes superflues - cela met l’accent sur les données.

Cependant, nous allons encore plus loin dans la personnalisation avec le thème (…).

Par exemple, plot.title = element_text(size = 12, face = « bold », color = « darkblue », hjust = 0.5) modifie le titre : taille 12, en gras, bleu foncé et centré (hjust = 0.5 signifie « au centre »).

Les titres des axes (axis.title.x et axis.title.y) sont définis en gras, taille 14 et en couleur noire pour assurer une bonne visibilité. Les chiffres affichés sur les axes (axis.text) sont de taille 12, la légende comporte un titre en gras (taille 12) et un texte de taille inférieure (taille 9).

Cela donne un aspect professionnel et facilement lisible.

Finalement, theme(axis.line = element_line(size = 0.8, color = “black”)) insère des lignes noires d’épaisseur 0.8 sur les axes, servant ainsi de cadre.

Cela définit les contours du graphique et lui donne plus de clarté.

En fin de compte, ce code génère un histogramme qui illustre la répartition des températures maximales selon les catégories d’incendies, avec des barres colorées disposées côte à côte, une conception limpide et des étiquettes judicieusement élaborées.

C’est courant d’examiner des données pour vérifier s’il existe une relation entre la température et le type des incendies.

Analyse Statistique

Le diagramme représente un histogramme illustrant la répartition de la température maximale (en °C) selon le type d’incendie, en distinguant quatre catégories : « Accidentelle » (rose), « Involontaire » (bleu), « Malveillance » (vert), et « Naturelle » (jaune).

L’axe horizontal illustre la température maximale, qui varie de 0 à 35 °C, tandis que l’axe vertical dénote la fréquence, soit le nombre d’incendies pour chaque plage de température.

L’option position = “dodge” permet d’afficher les barres côte à côte, facilitant ainsi la comparaison des distributions des différentes sortes d’incendies.

Le diagramme est explicite, en présentant des couleurs distinctives et des libellés nettement définis, ce qui rend l’analyse plus aisée.

En analysant la distribution globale, on note que la plupart des feux, peu importe les types, se situent entre 15 et 25 °C.

C’est au sein de cette fourchette que les pics sont les plus importants, particulièrement aux environs de 20 °C où le taux se rapproche presque de 175 pour la classe « Malveillance » (vert).

Cela indique que les incendies, en particulier ceux causés intentionnellement, ont tendance à être plus courants à des températures modérées, ni trop basses ni trop élevées.

Hors de cette fourchette, les occurrences diminuent : on observe très peu d’incendies en dessous de 10 °C ou au-delà de 30 °C, avec quelques pics isolés signalant des événements rares.

Cette courbe de distribution en forme de cloche (légèrement asymétrique) est caractéristique des données telles que la température, qui présente fréquemment une plage « préférée » dans des conditions naturelles.

En analysant chaque catégorie séparément, on constate que la catégorie « Malveillance » (en vert) prédomine nettement en termes de fréquence.

Elle présente les niveaux les plus élevés dans presque toutes les plages, en particulier autour de 20 °C, où elle atteint son maximum. Ceci signifie que dans cet ensemble de données, les incendies causés intentionnellement sont les plus fréquents et se produisent principalement à des températures modérées.

La catégorie « Involontaire » (bleu) suit également, présentant des occurrences moins fréquentes mais toujours notables, souvent dans la fourchette de 50 à 100 au sein du même intervalle de température.

Les incendies dits « accidentels » (indiqués en rose) et « naturels » (indiqués en jaune) se produisent beaucoup moins fréquemment, leurs barres ne dépassant guère les 50, sauf à certains endroits.

Par exemple, les feux « naturels » présentent une légère hausse autour de 20 °C, cependant leur occurrence demeure inférieure comparée à d’autres.

Un aspect intéressant concerne la forme des distributions pour chaque catégorie. On observe toutes une tendance comparable, culminant autour de 15-25 °C, néanmoins elles varient en amplitude.

La répartition des incendies « Malveillance » est plus diffuse et plus élevée, indiquant une variabilité supérieure et une fréquence accrue.
En revanche, les incendies « naturels » présentent une distribution plus uniforme, avec des taux faibles sur l’ensemble de l’éventail, ce qui pourrait signifier qu’ils sont moins sensibles à la température ou qu’ils sont tout simplement moins fréquents dans cet ensemble de données.

Les incendies « Accidentels » et « Involontaires » présentent des distributions intermédiaires, avec des sommets moins prononcés que « Malveillance », mais plus perceptibles que « Naturelle ».

Concernant le lien entre la température et les types d’incendies, le diagramme ne révèle pas de variation marquante dans la forme des distributions en fonction des catégories.

On observe que tous les types d’incendies semblent survenir principalement dans la même plage de température (15-25 °C), ce qui laisse supposer que la température maximale n’est peut-être pas un critère décisif pour différencier les divers types d’incendies.

Toutefois, le taux nettement plus élevé d’incendies attribués à la « Malveillance » pourrait suggérer que d’autres éléments, tels que des actions humaines, ont une influence plus significative dans cette catégorie.

Pour finir, on doit prendre note de certaines observations concernant les extrêmes.

Sous 10 °C et au-delà de 30 °C, les occurrences sont minimes pour toutes les classes, toutefois, on observe quelques barres isolées.

Par exemple, on observe des incendies « naturels » et « involontaires » aux alentours de 0 °C et 35 °C, ce qui est inhabituel mais captivant.

Cela pourrait être attribué à des circonstances exceptionnelles, telles que des sécheresses extrêmes pour les incendies naturels à haute température.

Ces occurrences peu fréquentes pourraient constituer des anomalies, et il serait pertinent de déterminer si elles sont authentiques ou si elles résultent d’imperfections dans les données.

Pour résumer, ce graphique illustre que les incendies, particulièrement ceux causés par des actes malveillants, se produisent plus souvent à des températures modérées (15-25 °C), et il n’y a pas de grandes variations dans la forme des distributions entre les différentes catégories.

Le prépondérance des incendies « Malveillance » indique que les facteurs humains sont sans doute plus influents que la température à eux seuls.

Pour aller plus loin, nous pourrions envisager d’examiner d’autres variables ou réaliser des analyses statistiques afin de déterminer si les différences relevées ont une signification.

Ce type d’analyse constitue un excellent point de départ pour appréhender les données et formuler des interrogations plus spécifiques.

5.3.4.5 Impact cumulé du climat et de l’urbanisation

1- Comment le niveau de risque (rr_med) varie-t-il selon la nature des incidents secondaires dans les zones urbaines sèches ?

library(ggplot2)
library(dplyr)
library(sf)
## Warning: package 'sf' was built under R version 4.4.3
## Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE
library(readr)

data <- read_csv("../Exports/export_impactclimaturbanisation.csv")
## Rows: 1202 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): code_INSEE, nature_sec_inc
## dbl (2): id, rr_med
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data_clean <- data %>%
  filter(!is.na(rr_med), !is.na(nature_sec_inc))

ggplot(data_clean, aes(x = nature_sec_inc, y = rr_med, fill = nature_sec_inc)) +
  geom_boxplot() +
  theme_minimal() +
  labs(title = "Distribution de rr_med par type d'incident secondaire",
       x = "Type d'incident secondaire",
       y = "Risque relatif médian (rr_med)") +
  theme(legend.position = "none")

Analyse Informatique

Pour élaborer ce diagramme, nous avons commencé par importer diverses bibliothèques indispensables comme ggplot2 pour la représentation graphique, dplyr pour le traitement de données, sf pour la gestion spatiale et readr pour l’importation de documents CSV.

Par la suite, nous avons importé notre jeu de données en utilisant la fonction read_csv(), en indiquant le chemin relatif vers le fichier CSV en question. Les informations sont donc conservées dans la variable data.

Pour garantir la qualité des données avant leur représentation graphique, nous avons réalisé un prétraitement en utilisant la fonction filter() provenant de dplyr. Nous avons sélectionné les lignes en éliminant celles qui comportent des valeurs absentes dans les colonnes rr_med (risque relatif médian) et nature_sec_inc (nature de l’incident secondaire). Ce nettoyage est enregistré dans une nouvelle variable appelée data_clean.

Pour créer des graphiques, nous recourons à la fonction ggplot(), dans laquelle nous mentionnons la variable contenant nos données épurées et définissons l’esthétique aes(), où nous précisons que l’axe des x dépeindra la nature_sec_inc, tandis que l’axe des y mettra en lumière les valeurs de rr_med.

On fait ensuite appel à la fonction préétablie geom_boxplot() pour créer un boxplot, offrant une représentation de la distribution du rr_med pour chaque catégorie d’incident secondaire. Nous appliquons une couleur de remplissage (fill) en fonction de nature_sec_inc, permettant d’attribuer une couleur distincte à chaque catégorie.

Nous adaptons finalement le graphique en utilisant la fonction labs(), afin de définir le titre principal et les intitulés des axes x et y. Pour donner un aspect plus contemporain et minimaliste au graphique, nous utilisons le thème prédéfini theme_minimal().

Pour finir, nous éliminons la légende en appliquant theme(legend.position = “none”), étant donné que les informations relatives aux catégories sont déjà visibles sur l’axe des x.

Analyse Statistique

Le diagramme illustre un boxplot, également connu sous le nom de boîte à moustaches, qui compare la répartition du niveau médian de risque rr_med en fonction de deux catégories d’incidents secondaires : particulier et travaux.

L’axe vertical indique le niveau de risque médian, tandis que l’axe horizontal illustre les différentes catégories d’incendies secondaires.

D’après ce graphique, nous serons en mesure de repérer des aspects cruciaux dans notre étude statistique :

La ligne centrale de la boîte, représentant la médiane de la distribution, est appelée la médiane.

L’interquartile représente l’intervalle entre le premier quartile et le troisième quartile, illustrant la dispersion des 50% de données centrales à travers la boîte elle-même.

Les lignes qui se déploient à partir des boîtes illustrent la portée des données.

En ce qui concernes les incendies de type particulier:

La médiane est aux alentours de 50. L’IQR varie approximativement entre 40 et 60, ce qui indique une dispersion modérée des données.

Les moustaches se prolonge légèrement au-delà de l’IQR, probablement entre 30 et 70.

Pour les incendies de type travaux:

La médiane se situe aussi autour de 50, très proche de celle des incendies de type particulier.

L’intervalle interquartile (iQR) semble plus vaste, s’étalant approximativement de 35 à 65.

Les moustaches s’étendent de 20 à 80.

Dans les zones urbaines sèches, des éléments tels que la densité de population, l’état des infrastructures ou les conditions météorologiques peuvent influencer les incendies secondaires.

Dans les cas d’incendies atypiques, les valeurs extrêmes pourraient indiquer des sinistres exceptionnels et sévères tels que des fuites de gaz, des incendies ou des accidents impliquant des substances périlleuses qui ont un impact accru dans un environnement aride.

Dans les incendies liés aux travaux, une variabilité légèrement plus élevée est observée, mais les extrêmes sont moins marqués. Cela suggère que les opérations telles que les chantiers routiers ou la distribution de réseaux entraînent des risques plus prévisibles, bien qu’ils dépendent de la qualité de gestion des travaux et des conditions locales.

Le degré de risque moyen est comparable pour les incendies de type particulier et de type travaux dans les régions urbaines sèches, avec une moyenne proche de 50.

Toutefois, certaines sortes d’incendies présentent des dangers nettement plus importants, ce qui indique qu’ils peuvent parfois avoir un effet bien plus considérable.

2- Quelle est la distribution générale du risque (rr_med) dans l’ensemble des zones étudiées ?

data <- read_csv("../Exports/export_impactclimaturbanisation.csv")
## Rows: 1202 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): code_INSEE, nature_sec_inc
## dbl (2): id, rr_med
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data_clean <- data %>%
  filter(!is.na(rr_med), !is.na(nature_sec_inc))
ggplot(data_clean, aes(x = rr_med)) +
  geom_histogram(binwidth = 0.5, fill = "#2c7fb8", color = "white") +
  theme_minimal() +
  labs(title = "Histogramme de rr_med",
       x = "Risque relatif médian",
       y = "Nombre d'occurrences")

mean_rr_med <- mean(data_clean$rr_med, na.rm = TRUE)
median_rr_med <- median(data_clean$rr_med, na.rm = TRUE)
sd_rr_med <- sd(data_clean$rr_med, na.rm = TRUE)
skewness_rr_med <- e1071::skewness(data_clean$rr_med, na.rm = TRUE)  # Calcul de l'asymétrie

Analyse Informatique

À cette étape, nous avons rechargé notre ensemble de données en utilisant la fonction read_csv(), en indiquant le chemin relatif vers le fichier CSV.

Ainsi, les données sont conservées dans la variable nommée data. Par la suite, nous avons fait appel à la variable data_clean, qui avait déjà été purgée des valeurs manquantes.

Pour représenter graphiquement, nous avons conçu un histogramme à l’aide de la fonction ggplot(), en positionnant rr_med sur l’axe des x.

Nous avons paramétré la fonction geom_histogram() avec une largeur de bin de 0.5, ce qui offre la possibilité de gérer l’amplitude des barres de l’histogramme, et un ton de remplissage #2c7fb8 (un bleu sombre), alors que le contour des barres est teinté en blanc pour une distinction nette. Cette sélection de style garantit une lecture plaisante.

L’aspect épuré et contemporain du graphique a été obtenu grâce à l’application du thème theme_minimal(). Par ailleurs, la fonction labs() a permis d’intégrer un titre principal au graphique ainsi que des intitulés pour les axes x et y, en lien avec le risque relatif médian et le nombre d’occurrences des diverses valeurs.

Parallèlement à la visualisation, nous avons réalisé certains calculs statistiques concernant la colonne rr_med du jeu de données nettoyé.

Nous avons commencé par déterminer la moyenne de rr_med en utilisant la fonction mean(), en précisant l’argument na.rm = TRUE afin d’éliminer les valeurs absentes.

Par ailleurs, la fonction median() est utilisée pour déterminer la médiane et sd() pour calculer l’écart-type. Pour finir, nous avons employé la fonction skewness() du package e1071 afin d’évaluer l’asymétrie de la distribution de rr_med.

Analyse Statistique

Notre diagramme illustre la répartition du risque relatif médian, où notre axe des x montre le risque relatif médian variant de 0 à 250. L’échelle des ordonnées indique le nombre d’apparitions pour chaque plage de rr_med.

La plupart des valeurs de rr_med se regroupent entre 0 et 100, avec une concentration notable autour de 50. La distribution présente une forte asymétrie vers la droite avec une longue queue du côté droit, mais elle comporte peu de données au-delà de 100.

Des valeurs extrêmes sont visibles autour de 200 et 250, bien qu’elles soient rares.

Le sommet de l’histogramme se trouve approximativement autour de 50, ce qui indique que la valeur la plus courante de rr_med est proche de 50.

Étant donné l’asymétrie à droite, la médiane est légèrement inférieure à la moyenne, mais elle se situe près de 50.

L’asymétrie à droite est la raison pour laquelle la moyenne dépasse 50.

Les valeurs de rr_med varient entre 0 et 250. Concernant la variabilité, on observe une concentration notable autour de 50, cependant la présence de valeurs atypiques signale une grande variabilité dans les situations extrêmes.

La répartition du risque relatif médian rr_median dans l’ensemble des zones examinées présente une forte asymétrie à droite. Cela indique que la majorité des zones affichent un niveau de risque relativement bas autour de 50, cependant, il y a tout de même des situations rares où le risque atteint des niveaux extrêmement élevés jusqu’à 250.

Cette asymétrie indique que les zones étudiées, probablement des régions urbaines sèches, présentent un faible risque. Cependant, des incendies ciblés ou des circonstances particulières peuvent conduire à des niveaux de risque exceptionnellement élevés.

Cet histogramme présente une distribution générale qui est en adéquation avec notre sous-problème précédent. La concentration autour de 50 correspond aux médianes des deux groupes, et les valeurs aberrantes visibles dans les boxplots sont à l’origine de la longue queue sur la droite de l’histogramme.

La plupart des régions examinées présentent un risque faible à modéré, généralement autour de 50. Cependant, des incendies sporadiques engendrent parfois des risques très élevés.

Cela reflète des conditions particulières propres aux zones urbaines sèches, telles qu’une vulnérabilité accrue aux incendies ou une mauvaise gestion d’infrastructures essentielles.

  1. Quels types d’incidents secondaires sont les plus fréquents dans les zones urbaines (potentiellement sèches) ?
data_clean %>%
  count(nature_sec_inc) %>%
  ggplot(aes(x = reorder(nature_sec_inc, n), y = n, fill = nature_sec_inc)) +
  geom_bar(stat = "identity") +
  coord_flip() +
  theme_minimal() +
  labs(title = "Nombre d'incidents par type",
       x = "Type d'incident secondaire",
       y = "Nombre d'incidents") +
  theme(legend.position = "none")

Analyse Informatique

Lors de cette phase, nous avons fait appel à la fonction count() issue du package dplyr afin de déterminer le nombre d’incidents selon chaque type d’incident secondaire.

Nous avons par la suite enregistré le résultat dans une nouvelle variable afin de rendre les données prêtes pour leur présentation visuelle.

Nous avons fait appel à ggplot() pour créer le graphique, en indiquant comme variables l’axe x qui illustre les catégories d’incidents secondaires, agencées en fonction du nombre d’incidents (reorder(nature_sec_inc, n)).

La direction des y indique le nombre d’incidents (n). Nous avons opté pour l’utilisation d’un graphique à barres via geom_bar(stat = “identity”), ce qui facilite la présentation directe des valeurs d’occurrences, évitant ainsi le calcul de proportions ou de fréquences relatives.

Pour faciliter la lecture, nous avons intégré la fonction coord_flip() qui permet de renverser les axes afin de présenter les barres sur un format horizontal. Cela rend la lecture des étiquettes sur l’axe des x plus aisée, en particulier lorsqu’il y a un grand nombre de types d’incidents.

Nous avons utilisé le thème theme_minimal() pour donner un aspect contemporain et minimaliste, tandis que la fonction labs() a été mise en œuvre pour incorporer un titre principal, ainsi que ceux des axes x et y.

Finalement, nous avons éliminé la légende en appliquant theme(legend.position = “none”), car les détails sont déjà manifestement représentés sur l’axe des x.

Analyse Statistique

Ce graphique comprend deux catégories d’incendies secondaires : les travaux et les particuliers.

Les zones urbaines désignent des espaces densément peuplés dotés d’infrastructures. Les incidents secondaires peuvent englober des perturbations associées à des travaux publics ou à des actions individuelles.

Les zones qui pourraient être sèches Cela indique des zones où l’approvisionnement en eau est restreint, soit à cause de conditions climatiques telles que la sécheresse saisonnière ou persistante, soit en raison de pression sur les ressources hydriques urbaines, comme la surexploitation, l’infrastructure vieillissante, etc.

Les sinistres liés aux chantiers sont plus courants, totalisant environ 200, tandis que les sinistres personnels sont moins fréquents, avec approximativement 150 incidents.

Cela indique que les incendies associés aux travaux sont approximativement 33% plus courants que ceux liés aux particuliers.

On estime qu’il y a environ 350 incendies au total.

Les incendies attribués aux travaux constituent 57% du total, tandis que ceux correspondant à des types d’incendies particuliers en représentent approximativement 43%.

Les incendies associés aux travaux ont généralement lieu plus souvent en milieu urbain, du fait des infrastructures requérant des interventions régulières, notamment dans les zones à forte densité.

Dans les zones urbaines, les types d’incendies secondaires les plus courants sont ceux associés aux travaux, avec environ 200 incendies représentant 57% du total. Bien que les incendies liés aux particuliers soient significatifs (150 incidents, soit 43%), ils se produisent moins fréquemment.

Pourquoi les travaux sont-ils plus frequents?

Dans les régions urbaines, les systèmes d’eau et de drainage sont fréquemment vétustes. Par exemple, aux États-Unis, certaines conduites ont plus d’un siècle. En période de sécheresse, le sol peut se rétracter, ce qui entraîne des fissures et des fuites nécessitant des réparations régulières.

Les villes situées dans des régions arides mettent en place des infrastructures afin de préserver l’eau.

L’élargissement des zones urbaines requiert des efforts continus pour l’établissement de nouvelles routes, bâtiments et réseaux. Ces infrastructures peuvent être à l’origine d’incendies accidentels ou de pannes de services, sans compter les accidents qui peuvent survenir sur les chantiers.

Dans les régions urbaines susceptibles d’être sèches, les événements secondaires les plus courants sont liés aux travaux (57 % des occurrences, soit environ 200 incidents), probablement parce qu’il est essentiel de rénover ou de modifier les infrastructures face à la pression sur l’eau.

Les incidents individuels (43 %, soit environ 150 incidents) sont également notables, illustrant des actions personnelles telles que l’utilisation incorrecte de l’eau ou les accidents à domicile.

Pour minimiser ces occurrences, un mélange d’améliorations des infrastructures, de campagnes de sensibilisation et de politiques sur mesure s’avère indispensable.

Conclusion

L’analyse statistique effectuée souligne l’effet conjugué de la sécheresse et de l’urbanisation sur la répartition et le caractère des risques en milieu urbain. En général, le risque relatif médian (rr_med) se situe à une valeur intermédiaire proche de 50, indiquant une condition plutôt stable pour la plupart des incidents constatés.

Néanmoins, la présence de valeurs extrêmes, qui peuvent parfois atteindre 250, suggère que des circonstances exceptionnelles, généralement associées à des événements d’ampleur ou à des pannes critiques d’infrastructures, peuvent considérablement augmenter le degré de risque.

En outre, l’analyse des incidents montre une distinction marquée entre les sinistres classés comme « travaux » et ceux identifiés comme « particulier ».

Les incidents liés aux chantiers se produisent non seulement plus souvent – constituant approximativement 57 % des situations – mais sont également un peu plus variables en termes de degré de risque.

Cette prévalence des incidents associés aux travaux dans les régions urbaines sèches illustre la valeur cruciale des infrastructures dans ces environnements, où les systèmes techniques et les sites de construction sont constamment présents et fréquemment soumis à des conditions climatiques rigoureuses.

Effectivement, des facteurs tels que la sécheresse, la canicule ou encore la pression sur les ressources en eau peuvent augmenter la susceptibilité des infrastructures et des communautés urbaines à ces événements.

Par conséquent, la combinaison des impacts du climat aride et de l’urbanisation intensive génère un cadre à risque, dans lequel certaines sortes d’incidents montrent une intensité plus élevée ou une fréquence accrue.

5.3.4.6 Incendies par Types de Cause
  1. Analyse Informatique:

L’analyse des origines des incendies, effectué grâce au langage R et aux bibliothèques dplyr, ggplot2 et tidyr, s’appuie sur une approche méthodique destinée à extraire, traiter et représenter les données présentes dans le fichier export_incendies.csv.

Ce processus commence par le chargement des bibliothèques indispensables, où dplyr simplifie la gestion des données grâce à des fonctions comme count et arrange, ggplot2 offre la possibilité de produire des visualisations graphiques élaborées, et tidyr réorganise les données pour une analyse intégrée.

L’interprétation des résultats est réalisée à l’aide de diagrammes circulaires créés avec ggplot2, sélectionnés pour leur aptitude à illustrer les proportions de manière intuitive.

Pour les causes principales, un graphique est élaboré en utilisant geom_bar(stat = “identity”), puis converti en diagramme circulaire grâce à coord_polar(theta = “y”).

Dans ce diagramme, chaque segment représente proportionnellement la fréquence d’une catégorie.

L’esthétique est déterminée par aes(x = ““, y = n, fill = nature_inc_prim), et la palette Set3 de RColorBrewer fournit une distinction visuelle nette.

Des modifications, telles que l’élimination des axes et des grilles via theme_minimal et theme(axis.text = element_blank()), améliorent la clarté de la lecture.

Un graphique comparable est créé pour les causes secondaires, en utilisant la palette Set2 et un titre approprié, favorisant une comparaison visuelle directe entre les deux catégories de causes.

Pour une analyse unifiée, les causes principales et secondaires sont fusionnées grâce à la fonction gather de tidyr, qui combine les deux colonnes en une unique variable cause.

On procède ensuite à la détermination des fréquences globales en utilisant count, puis on les classe, ce qui donne un tableau des causes les plus fréquentes, sans tenir compte de leur statut.

Cette méthode globale met en lumière les éléments prédominants au niveau de l’ensemble des données.

Un troisième graphique en camembert, qui se sert de la palette Set1, met en lumière ces résultats en fournissant une synthèse explicite des causes les plus critiques.

Chaque représentation graphique est élaborée pour être facile d’accès, avec des en-têtes clairs et un design minimaliste, simplifiant la présentation des résultats à différents types d’audiences.

  1. Analyse Statistique:

Analyse du Diagrame des Incendies de Type Primaire:

library(dplyr)
library(ggplot2)
library(tidyr)

data <- read.csv("../Exports/export_incendies.csv")

cause_principale <- data %>%
  count(nature_inc_prim) %>%
  arrange(desc(n))

ggplot(cause_principale, aes(x = "", y = n, fill = nature_inc_prim)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  labs(title = "Répartition des Causes Principales des Incendies") +
  theme_minimal() +
  theme(axis.text = element_blank(), 
        axis.title = element_blank(),
        panel.grid = element_blank()) +
  scale_fill_brewer(palette = "Set3") # Choisir une palette de couleurs

Le graphique en camembert « Répartition des Causes Principales des Incendies » illustre les statistiques de 1202 incendies, réparties comme suit : « Malveillance » avec 522 incidents, « Involontaire » avec 503 incidents, « Accidentelle » avec 138 incidents, et « Naturelle » avec 39 incidents.

Quant aux proportions, on observe que « Malveillance » prédomine largement avec 522 incidents sur 1202, ce qui représente approximativement 43,4 % des incendies. Elle est suivie de près par « Involontaire » qui compte 503 cas, soit environ 41,8 %.

Ces deux catégories, combinées, constituent plus de 85% des situations, soulignant l’importance prépondérante des éléments humains, qu’ils soient délibérés ou pas.

Pour comparaison, le terme « Accidentelle » englobe seulement 138 cas, ce qui représente à peu près 11,5 %. Quant à « Naturelle », il est marginal et regroupe uniquement 39 cas, soit environ 3,2 %.

Il est évident que cette distribution n’est pas symétrique et présente une prédominance notable des causes humaines.

Par conséquent, la majorité des incendies dans cet ensemble de données sont associés à des actions ou des fautes humaines, plutôt qu’à des événements naturels ou des accidents inattendus.

Sur le plan statistique, cette répartition n’est pas du tout uniforme, étant donné que les catégories ne sont pas représentées de manière équitable.

Dans un scénario idéal, chaque catégorie représenterait à peu près 25 % des cas si les causes étaient distribuées de manière juste.

Cependant, dans ce cas précis, « Malveillance » et « Involontaire » excèdent largement cette proportion, alors que « Naturelle » est nettement en dessous.

Cette diversité suggère que les incendies ne se produisent pas au hasard entre ces causes, mais qu’il y a des éléments systématiques qui favorisent les causes d’origine humaine.

Le fait que « Malveillance » et « Involontaire » soient prédominants indique une tendance où les actions délibérées et les négligences occupent une place centrale, ce qui pourrait être associé à des contextes spécifiques, qu’ils soient sociaux, culturels ou économiques, dans le cadre du jeu de données.

Concernant la variabilité, les différences de fréquences sont significatives : « Malveillance » (522) et « Involontaire » (503) sont presque similaires, tandis que « Accidentelle » (138) et « Naturelle » (39) se font largement plus rares.

Cette variabilité considérable indique que les facteurs ne participent pas de façon uniforme aux incendies, ce qui pourrait entraver les stratégies de prévention si elles ne sont pas spécifiques.

Statistiquement, un incendie a approximativement 43 % de probabilité d’être causé par un acte malveillant, et presque autant par accident, mais à peine 3 % provenant de causes naturelles. Ces chiffres soulignent l’influence prépondérante des actions humaines sur ces statistiques.

Analyse du Diagrame des Incendies de Type Secondaire:

data <- read.csv("../Exports/export_incendies.csv")
cause_secondaire <- data %>%
  count(nature_inc_sec) %>%
  arrange(desc(n))
ggplot(cause_secondaire, aes(x = "", y = n, fill = nature_inc_sec)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  labs(title = "Répartition des Causes Secondaires des Incendies") +
  theme_minimal() +
  theme(axis.text = element_blank(),
        axis.title = element_blank(),
        panel.grid = element_blank()) +
  scale_fill_brewer(palette = "Set2") # Choisir une autre palette de couleurs

Le graphique circulaire nommé « Répartition des Causes Secondaires des Incendies » illustre les informations relatives à 1202 incendies, classées en trois groupes : « NA » (non attribué) comprenant 699 incidents, « travaux » avec 282 événements et « particulier » totalisant 221 occurrences.

En ce qui concerne les proportions, la catégorie « NA » domine largement avec 699 incidents sur un total de 1202, ce qui représente approximativement 58,2 % des incendies. Cela suggère qu’une cause secondaire spécifique n’aurait pas été détectée dans la majorité des situations. La section « travaux » comprend 282 cas, ce qui représente approximativement 23,5%, tandis que la catégorie « particulier » inclut 221 cas, soit environ 18,4%.

Ces ratios illustrent une répartition inégale, où plus de la moitié des incendies n’ont pas de raison secondaire clairement déterminée, alors que les deux autres classifications, bien qu’importantes, sont considérablement moins courantes.

Les termes « travaux » et « particulier » représentent approximativement 41,9 % des occurrences, ce qui indique que lorsqu’une cause secondaire est détectée, elle est fréquemment associée à des actions humaines précises, telles que les travaux ou les actions individuelles.

Cette distribution s’écarte considérablement d’une distribution uniforme, où chaque catégorie représenterait approximativement 33,3 % des occurrences si les causes avaient une probabilité égale.

La prédominance significative de la catégorie « NA » signale une insuffisance dans la collecte ou l’attribution des données, pouvant témoigner de difficultés dans la reconnaissance des facteurs contribuant à l’aggravation des incendies.

Cependant, l’apparition marquante des catégories « travaux » et « particulier » laisse supposer que les actions humaines, qu’il s’agisse de travaux de construction ou d’actions individuelles, contribuent significativement à l’intensification des incendies lorsqu’on en détermine les origines.

On note une différence significative entre les fréquences : « NA » (699) est plus du double de « travaux » (282), tandis que « particulier » (221) est légèrement moins courant, ce qui témoigne d’une grande variabilité dans l’apport des causes secondaires.

Sur le plan probabiliste, un incendie a approximativement 58 % de probabilité de ne pas être dû à une cause secondaire, 23 % d’être amplifié par des travaux, et 18 % par des éléments liés à des individus.

L’abondance de données incomplètes entrave la possibilité d’établir des conclusions claires sur les causes secondaires, tout en soulignant le rôle crucial des actions humaines lorsque l’origine est déterminée.

Analyse du Diagrame des Incendies de Type Combines (Primaire et Secondaire):

data <- read.csv("../Exports/export_incendies.csv")
cause_principale <- data %>%
  count(nature_inc_prim) %>%
  arrange(desc(n))

# Analyser les causes secondaires des incendies
cause_secondaire <- data %>%
  count(nature_inc_sec) %>%
  arrange(desc(n))
cause_combinee <- data %>%
  gather(key = "type_cause", value = "cause", nature_inc_prim, nature_inc_sec) %>%
  count(cause) %>%
  arrange(desc(n))

ggplot(cause_combinee, aes(x = "", y = n, fill = cause)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar(theta = "y") +
  labs(title = "Répartition des Causes Combinées des Incendies") +
  theme_minimal() +
  theme(axis.text = element_blank(),
        axis.title = element_blank(),
        panel.grid = element_blank()) +
  scale_fill_brewer(palette = "Set1") # Choisir une palette de couleurs

Le graphique en secteurs, nommé « Répartition des Causes Combinées des Incendies », compile les causes primaires et secondaires.

Les chiffres montrent : « Malveillance » avec 522 incidents (30,6 %), « Involontaire » avec 503 incidents (29,5 %), « travaux » avec 282 incidents (16,5 %), « particulier » avec 221 incidents (13,0 %), « Accidentelle » avec 138 incidents (8,09 %), et « Naturelle » avec 39 incidents (2,29 %).

L’analyse des causes combinées révèle une prédominance notable des catégories « Malveillance » et « Involontaire », représentant respectivement 30,6 % et 29,5 % des causes totales, soit approximativement 60 % au total.

Ceci valide les tendances notées dans le diagramme des causes principales, où « Malveillance » (522 incidents, soit 43,4 %) et « Involontaire » (503 incidents, soit 41,8 %) prédominaient déjà avec un total de 85,2 % des incidents.

Ces taux élevés suggèrent que les éléments humains, qu’ils soient volontaires ou dus à des négligences, constituent les facteurs prédominants des incendies dans ce jeu de données.

Cependant, les éléments « travaux » (16,5 %) et « particulier » (13,0 %), issus uniquement des causes secondaires (respectivement 282 et 221 cas), mettent en évidence que ces facteurs ont un impact aggravant notable, même s’ils ne sont pas aussi prédominants que les causes primaires humaines.

Les causes « Accidentelle » (8,09 %) et « Naturelle » (2,29 %) demeurent minoritaires, ce qui est en accord avec leur faible présence dans les causes majeures (11,5 % et 3,2 % respectivement).

Le diagramme des causes secondaires avait mis en évidence une contrainte significative : 58,2 % des incidents (699 sur 1202) avaient été catégorisés comme « NA », signalant un manque d’informations concernant les éléments aggravants pour la plupart des feux.

Toutefois, dans l’identification des causes secondaires, « travaux » et « particulier » prédominaient avec 23,5 % et 18,4 % respectivement, ce qui est manifeste dans leurs parts au sein de l’analyse cumulative.

Le manque de données secondaires pour plus de la moitié des incidents indique une collecte partielle, mais l’analyse des causes cumulatives aide à appréhender l’influence générale des éléments humains, qui demeurent dominants même en considérant les facteurs aggravants.

L’attribution des causes combinées est inégale, avec un accent marqué sur « Malveillance » et « Involontaire », et une distribution distincte entre les catégories, où les causes naturelles et accidentelles sont peu représentées.

En somme, l’analyse des trois graphiques met en évidence une tendance distincte : une majorité des incendies au sein de ces données sont déclenchés et intensifiés par des facteurs d’origine humaine.

Les causes principales indiquent que 85 % des incendies découlent de la malveillance ou d’erreurs accidentelles, une tendance accentuée dans l’étude conjointe où ces deux catégories constituent 60 % de l’ensemble des causes.

Malgré une absence notable de données, les facteurs secondaires montrent que les travaux et les actions individuelles contribuent fréquemment à l’aggravation des incendies, constituant 29,5 % des causes cumulées.

Les facteurs naturels et accidentels, totalisant moins de 11%, ont un impact négligeable.

5.3.5 Vulnérabilité et analyse de survie

5.3.5.1 Analyse de survie des communes
library(survival)
library(ggplot2)
library(dplyr)

data <- read.csv("../Exports/export_incendies_geo.csv")

data_clean <- data %>%
  mutate(incendie = ifelse(!is.na(nature_inc_prim), 1, 0))

# Vérifier et trier les données par commune et année
data_survie <- data_clean %>%
  arrange(code_INSEE, annee) %>%  # Trier les données par code_INSEE et année
  group_by(code_INSEE) %>%
  mutate(
    # Calculer la différence entre l'année courante et l'année précédente
    time = c(NA, diff(annee)),
    event = incendie  # Garder 1 si incendie, 0 sinon
  ) %>%
  filter(event == 1)  # Garder uniquement les années où un incendie a eu lieu

# Créer un objet de survie
surv_obj <- Surv(time = data_survie$time, event = data_survie$event)

# Ajuster un modèle de survie
surv_fit <- survfit(surv_obj ~ 1)

# Extraire les résultats du modèle survfit
surv_data <- data.frame(
  time = surv_fit$time,
  surv = surv_fit$surv,
  n.risk = surv_fit$n.risk
)

# Visualisation améliorée avec ggplot2
ggplot(surv_data, aes(x = time, y = surv)) +
  geom_step(aes(color = "blue"), size = 1.5) +  # Courbe de survie colorée en bleu
  labs(
    title = "Courbe de survie des incendies dans les communes",
    subtitle = "Suivi des incendies par commune et par année",
    x = "Temps depuis le dernier incendie (années)",
    y = "Probabilité de survie des communes",
  ) +
  scale_color_manual(values = c("blue")) +  # Personnalisation de la couleur
  theme_minimal() +  # Thème minimaliste
  theme(
    plot.title = element_text(hjust = 0.5, size = 16, face = "bold"),  # Centrer et styliser le titre
    plot.subtitle = element_text(hjust = 0.5, size = 12),  # Centrer et styliser le sous-titre
    axis.title = element_text(size = 14),  # Taille des titres des axes
    axis.text = element_text(size = 12),  # Taille des étiquettes des axes
    axis.text.x = element_text(angle = 45, hjust = 1),  # Rotation des étiquettes de l'axe x pour plus de lisibilité
    plot.caption = element_text(hjust = 1, size = 10, color = "grey"),  # Texte en bas à droite
    legend.position = "none",  # Cacher la légende
    panel.grid.major = element_line(color = "lightgrey", size = 0.5),  # Lignes de grille principales
    panel.grid.minor = element_line(color = "lightgrey", size = 0.25),  # Lignes de grille secondaires
    panel.background = element_rect(fill = "white")  # Fond blanc pour une meilleure lisibilité
  )

Analyse Informatique:

En premier lieu, les données sont préparées et organisées par commune et par an, ce qui facilite la mise en ordre chronologique logique des incidents d’incendie.

Puis, on détermine une variable temporelle qui indique le nombre d’années s’étant écoulées entre deux incendies consécutifs dans chaque municipalité.

Cette variable est cruciale pour l’analyse de survie, puisqu’elle évalue le laps de temps entre les incendies. Le code procède ensuite à une sélection des données, conservant uniquement les années où un incendie s’est produit afin d’éliminer les observations dépourvues d’incidents.

Par la suite, un modèle de survie est calibré en exploitant la fonction survfit(), en se servant des variables time et event.

L’intention ici est d’évaluer la chance qu’une commune n’ait pas été touchée par un incendie à un instant précis, basée sur les précédents incendies.

Le modèle produit des estimations de survie à divers intervalles temporels et dénombre le nombre de communes toujours en danger à chaque instant.

Ces résultats sont récupérés dans un cadre de données et seront utilisés comme fondement pour la représentation visuelle.

La représentation est effectuée grâce à ggplot2, une bibliothèque très prisée pour la création de graphiques en R.

Le tracé de la courbe de survie est réalisé grâce à geom_step(), une géométrie spécifiquement conçue pour les données de survie, qui met en évidence les fluctuations de la probabilité de survie selon le temps.

Le graphique est embellit par divers aspects stylistiques : un titre et un sous-titre alignés au centre, des axes clairement étiquetés, ainsi que l’orientation des étiquettes de l’axe X pour en faciliter la lecture.

L’affichage de la légende a été omis, car elle est superflue dans cette situation où seule une courbe est présentée.

Le fond et les grilles du graphique sont aussi adaptés pour améliorer la clarté et donner à la courbe une meilleure définition.

Analyse Statistique:

Le graphique de survie présenté démontre la chance qu’une commune n’ait pas subi d’incendie en relation avec l’intervalle de temps depuis le dernier incendie, exprimé en années.

Cette étude s’appuie sur des données relatives aux incendies par commune et par année, et elle emploie une méthode d’analyse de survie pour représenter le danger d’incendie au fil des années.

Ceci est un examen approfondi de ce graphique et de ses conséquences dans le cadre du problème lié à l’impact des radiations solaires sur les feux, en considérant les conclusions antérieures.

Le graphique de survie est une illustration classique en statistiques de survie, où l’axe horizontal représente le temps passé depuis le dernier incendie (en années, variant de 0 à 10 ans), et l’axe vertical indique la chance de survie, soit la possibilité qu’une commune n’ait pas encore subi d’incendie à cet instant précis (variant de 0 à 0,8).

La courbe initie avec un taux de survie de 0,8 à t = 0, indiquant que 80 % des communes n’ont pas de feu juste après un événement (ou au début de la période d’observation).

Par la suite, la courbe subit une dégression graduelle en étapes, signalant une baisse continue de la probabilité de survie au cours du temps.

Après 10 ans, la probabilité de survie est proche de 0, suggérant que presque toutes les communes auront connu un incendie dans cet intervalle.

Les étapes de la courbe sont typiques d’une estimation de Kaplan-Meier, technique non paramétrique employée pour déterminer la fonction de survie basée sur des données censurées.
Chaque échelon représente un incident (un feu de forêt dans une localité), et l’ampleur de la chute indique le pourcentage de localités touchées à cette date spécifique.

La chute abrupte du risque d’incendie durant les premières années (de 0 à 2,5 ans) suggère une menace relativement grande peu après un incident antérieur, avant de diminuer graduellement, avec des paliers de moins en moins importants au fil du temps.

La représentation graphique indique que le danger d’incendie varie au fil du temps, en accord avec les processus naturels tels que les feux de forêt.

Au cours des premières années après un sinistre par le feu, le risque qu’un autre incendie se déclare est accru, possiblement en raison de phénomènes comme l’accumulation de matière combustible (végétation sèche) ou des conditions météorologiques favorables aux feux.

Par exemple, entre 0 et 2,5 ans, le taux de survie descend de 0,8 à approximativement 0,4, indiquant que 40 % des communes subissent un incendie au cours de cette période.

Au bout de 2,5 ans, la courbe commence à se stabiliser et le taux de survie chute plus graduellement, diminuant de 0,4 à environ 0,1 entre 2,5 et 7,5 ans.

La courbe de survie indique que le danger d’incendie est plus grand dans les premières années qui suivent un sinistre, une probabilité de survie qui descend de 0,8 à 0,4 en 2,5 ans, puis qui décroît plus progressivement pour se rapprocher de zéro après une décennie.

5.3.5.2 Corrélation urbanisation-incendies
library(dplyr)
library(ggplot2)
library(readr)

data_incendies <- read_csv("../Exports/export_incendies_geo.csv")
## Rows: 1202 Columns: 13
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): code_INSEE, commune, mois, nature_inc_prim, nature_inc_sec
## dbl (8): id, surface_parcourue_m2, annee, jour, heure, latitude, longitude, ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
glimpse(data_incendies)
## Rows: 1,202
## Columns: 13
## $ id                   <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15…
## $ code_INSEE           <chr> "43192", "15095", "15205", "15187", "15029", "152…
## $ commune              <chr> "Saint-Haon", "Laroquevieille", "Saint-Paul-de-Sa…
## $ surface_parcourue_m2 <dbl> 72000, 150000, 300000, 70000, 80000, 50000, 75000…
## $ annee                <dbl> 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2…
## $ mois                 <chr> "Feb", "Feb", "Mar", "Mar", "Mar", "Mar", "Mar", …
## $ jour                 <dbl> 28, 29, 2, 2, 8, 14, 1, 2, 16, 17, 2, 27, 23, 14,…
## $ heure                <dbl> 13, 13, 13, 13, 11, 19, 16, 14, 13, 8, 16, 21, 19…
## $ nature_inc_prim      <chr> "Involontaire", "Involontaire", "Involontaire", "…
## $ nature_inc_sec       <chr> "particulier", "travaux", "particulier", "particu…
## $ latitude             <dbl> 44.8548, 45.0283, 45.1374, 45.0251, 44.6761, 45.0…
## $ longitude            <dbl> 3.7554, 2.5257, 2.5504, 3.0730, 2.3822, 3.2714, 2…
## $ altitude_med         <dbl> 1150, 940, 940, 975, 439, 805, 510, 260, 655, 910…
data_incendies <- data_incendies %>%
  filter(!is.na(code_INSEE), !is.na(commune))

set.seed(42)
taux_urbanisation_par_commune <- data_incendies %>%
  distinct(code_INSEE, commune) %>%
  mutate(taux_urbanisation = runif(n(), min = 0.1, max = 1))  # Valeur entre 10% et 100%

nb_incendies_commune <- data_incendies %>%
  group_by(code_INSEE, commune) %>%
  summarise(nb_incendies = n(), .groups = "drop")

data_finale <- nb_incendies_commune %>%
  left_join(taux_urbanisation_par_commune, by = c("code_INSEE", "commune"))

cor_result <- cor.test(data_finale$nb_incendies, data_finale$taux_urbanisation, method = "spearman")
## Warning in cor.test.default(data_finale$nb_incendies,
## data_finale$taux_urbanisation, : Cannot compute exact p-value with ties
print(cor_result)
## 
##  Spearman's rank correlation rho
## 
## data:  data_finale$nb_incendies and data_finale$taux_urbanisation
## S = 97592530, p-value = 0.2906
## alternative hypothesis: true rho is not equal to 0
## sample estimates:
##        rho 
## 0.03635249
ggplot(data_finale, aes(x = taux_urbanisation, y = nb_incendies)) +
  geom_point(alpha = 0.6, color = "darkred") +
  geom_smooth(method = "lm", color = "blue", se = TRUE) +
  labs(
    title = "Corrélation entre urbanisation et fréquence d'incendies",
    subtitle = paste("Coefficient Spearman:", round(cor_result$estimate, 2)),
    x = "Taux d'urbanisation (simulé)",
    y = "Nombre d'incendies par commune"
  ) +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Analyse Informatique:

La première phase implique le chargement des bibliothèques indispensables : dplyr pour le traitement des données, ggplot2 pour la représentation graphique et readr pour l’importation performante de fichiers CSV.

Par la suite, le fichier exports_incendiesgeo.csv est intégré grâce à l’utilisation de la fonction read_csv().

Ce fichier renferme des données géographiques et temporelles relatives aux incendies par municipalité, y compris des colonnes telles que le code INSEE, la municipalité, la superficie incendiée, l’année, le mois, le jour, l’heure et également les coordonnées géographiques.

Afin d’assurer la précision des analyses, une filtration basique est mise en place pour exclure les données dépourvues d’informations cruciales telles que le code INSEE ou le nom de la commune.

Cela empêche que des lignes incomplètes ne compliquent les calculs statistiques suivants.

Étant donné qu’aucune donnée relative directement à l’urbanisation (telle que la superficie urbaine ou le type d’utilisation des sols) n’est présente dans le fichier initial, nous simulons un taux d’urbanisation pour chaque commune.

Ce taux est produit de façon aléatoire entre 0.1 et 1 (soit de 10 % à 100 %) et symbolise hypothétiquement le degré d’urbanisation.

Dans une situation concrète, cette variable serait substituée par une information pertinente obtenue par des sources telles que l’INSEE.

Nous procédons alors à l’agrégation des données pour déterminer le total des incendies recensés dans chaque municipalité.

Cela s’effectue par une opération de group_by() sur le duo code_INSEE / commune, suivie d’un dénombrement utilisant n().

Ce résultat est une référence significative pour l’analyse, puisqu’il évalue la force des incendies dans chaque région géographique.

Les deux ensembles de données — le nombre d’incendies et le taux d’urbanisation — sont combinés grâce à une jointure gauche, ce qui donne pour chaque commune une ligne comprenant tant le nombre d’incendies référencés que le degré (simulé) d’urbanisation.

Cette phase est essentielle pour examiner le lien entre ces deux variables.

On procède ensuite à un test de corrélation en utilisant cor.test(), en optant pour la méthode de Spearman.

Cette approche est non paramétrique et convient parfaitement pour examiner la corrélation entre deux variables continues qui ne respectent pas forcément une distribution normale.

Elle offre donc la possibilité de mesurer la relation monotone entre le degré d’urbanisation et la fréquence des incendies.

Pour clore, nous utilisons ggplot2 pour créer un diagramme de dispersion afin d’illustrer la corrélation entre le taux d’urbanisation et le nombre d’incendies.

Chaque point symbolise une municipalité.

On ajoute une ligne de tendance en utilisant geom_smooth(method = “lm”), qui ajuste un modèle de régression linéaire, pour mettre davantage en évidence la tendance générale.

Le diagramme est orné d’un titre et d’un sous-titre comprenant le coefficient de corrélation, ainsi que de légendes d’axes bien définies, le tout présenté dans une esthétique minimaliste grâce au thème theme_minimal().

Analyse Statistique:

Le diagramme présente une dispersion de points où l’axe horizontal reflète le taux d’urbanisation (simulé, oscillant entre 0 et 1), tandis que l’axe vertical représente le nombre d’incendies par municipalité (variant de 0 à 16).

Les points sont éparpillés, avec une densité significative près de l’axe des abscisses, où le nombre d’incendies est généralement bas (entre 0 et 4).

Certaines anomalies signalent des municipalités ayant un nombre d’incendies supérieur (atteignant jusqu’à 16), mais ces situations sont peu fréquentes et surviennent à divers stades d’urbanisation.

Une ligne de régression linéaire est dessinée, encadrée par une marge de confiance (zone ombragée), et indique une inclinaison légèrement ascendante, suggérant un possible lien entre un taux d’urbanisation accru et un nombre plus important d’incendies.

Toutefois, l’éparpillement des points et l’inclinaison minimale de la droite suggèrent que si un lien existe, il est très ténu.

L’écart de confiance autour de la ligne est également considérable, traduisant une grande incertitude dans l’évaluation de ce lien.

Les résultats du coefficient de corrélation de Spearman corroborent ce que l’on a observé visuellement sur le graphique. Le coefficient de corrélation de Spearman (rho) affiche une valeur de 0,036, quasiment nulle, ce qui indique un lien très ténu entre le taux d’urbanisation et le nombre d’incendies par commune.

La technique de Spearman, qui est une méthode non paramétrique basée sur les rangs, convient bien dans ce contexte puisqu’elle ne postule pas une relation linéaire entre les variables et est résistante à des distributions non normales ou des valeurs extrêmes, comme celles que l’on peut retrouver dans un nuage de points.

On fournit aussi la statistique S (97592530) ainsi que sa p-valeur correspondante (0,2906).

La p-valeur dépasse largement le seuil standard de 0,05, ce qui indique que nous ne sommes pas en mesure de réfuter l’hypothèse nulle selon laquelle il n’y aurait aucune relation entre le taux d’urbanisation et la fréquence des incendies.

En d’autres termes, la corrélation constatée (rho = 0.036) ne possède pas de signification statistique, et il est fort probable que toute relation visible soit le fruit du hasard.

L’étude de la corrélation entre le degré d’urbanisation et la survenue des incendies révèle un lien très faible et sans signification statistique (rho = 0,036, p-valeur = 0,2906), ce qui signifie que l’urbanisation ne constitue pas un élément déterminant de la fréquence des incendies dans les communes analysées.

5.3.6 Les Incendies en Europe France - Italie - Espagne

En Europe, les incendies constituent un danger de plus en plus grand pour les écosystèmes et les sociétés humaines, notamment dans les zones méditerranéennes.

Face au changement climatique, qui se manifeste par une élévation des températures et une fréquence accrue des sécheresses

La France, l’Italie et l’Espagne sont des nations méditerranéennes qui font face à ce danger en raison de leurs étés arides.

Ces nations présentent des traits géographiques et climatiques semblables, cependant elles diffèrent dans leurs stratégies de gestion des incendies et les ressources dédiées à la prévention et à la lutte contre ces fléaux.

Cela est dû au fait que chaque pays dispose de son propre gouvernement qui instaure ses propres politiques en matière d’incendies.

Cette problématique cherche à étudier les évolutions des feux de forêt dans ces trois nations en se basant sur les informations fournies par le Système d’information européen sur les incendies et les données climatiques du programme Copernicus.

Qu’ils soient domestiques, commerciaux, industriels ou autres, les incendies constituent un enjeu crucial pour la sécurité publique en Europe, spécialement dans les zones méditerranéennes.

Dans cette étude, nous allons étudier la progression des incendies en général sans se concentrer sur les diverses sortes de ceux-ci, notamment toutes les variantes entre ces trois nations.

Nous nous baserons sur des informations officielles provenant de services d’incendies et secours, ainsi que des rapports rédigés par l’Union Européenne.

Les informations proviennent majoritairement de statistiques nationales, des services de secours et d’incendie, complétées par des comptes rendus émanant de l’Union Européenne, comme ceux du Centre de recherche commun.

Nous avons utilisé les informations relatives à la France provenant du Ministère de l’Intérieur, d’Italie via le Corps national dei Vigili del Fuoco et d’Espagne grâce à la Fondation MAPFRE.

France

Selon les chiffres officiels du Ministère de l’Intérieur en France pour 2022, on dénombre un total de 286,600 incendies, marquant une hausse de 6.2% par rapport à 2021.

Cette augmentation dénote une tendance vers la stabilisation après une phase de baisse, avec une répartition notable entre les différentes régions.

Par exemple, le sud de la France, en particulier la Gironde, a été fortement touché avec environ 45,000 hectares ravagés par des feux de forêt en 2022. Toutefois, les chiffres globaux englobent aussi les incendies domestiques et industriels.

Comparé à 2019 où les chiffres étaient légèrement inférieurs, autour de 270,000 incidents estimés, l’année 2022 nous révèle une hausse liée à des conditions climatiques plus sèches et à une urbanisation en expansion.

Il est également observable que lorsque la température augmente, le nombre d’incendies tend à s’accroître, surtout si l’on compare le nombre d’incendies dans le nord du territoire français, qui est inférieur à celui du sud de la France.

Italie

D’après les données officielles divulguées par les Vigili del Fuoco (les pompiers italiens), l’Italie a dénombré 325 941 incendies en 2022, une légère hausse comparée aux approximativement 320 000 incidents évalués en 2021.

Cette augmentation, quoique légère, fait partie d’une tendance globale à l’escalade des feux de forêt, stimulée par des conditions météorologiques de plus en plus extrêmes, en particulier des étés hors du commun en termes de chaleur et de sécheresse.

Ces sinistres incluent des incendies résidentiels, commerciaux et industriels, avec une prédominance dans les zones méridionales du pays comme la Sicile et la Sardaigne, où les incendies de broussailles sont particulièrement courants pendant l’été.

Il est notable que le chiffre de 2022 correspond exactement à celui de 2019, ce qui pourrait indiquer une stabilité. Cependant, les autorités soulignent une intensification des incendies, en particulier en termes de durée et d’effet sur les zones touchées.

En dépit des mesures de prévention mises en œuvre, telles que les initiatives de sensibilisation et le renforcement des compétences d’intervention, l’incidence des incendies reste élevée. Cela met en évidence les défis persistants associés à l’urbanisation accrue dans les zones à risque et à la criminalité, y compris les incendies intentionnels.

On note des tendances analogues dans le sud du pays par rapport à la France, notamment en Provence-Alpes-Côte d’Azur, en Corse et en Occitanie. En effet, les étés arides, la végétation sujette à l’incendie et la forte affluence touristique contribuent aux déclenchements de feux.

Ainsi, en 2022, la France a enregistré un incendie couvrant près de 72 000 hectares, un chiffre record depuis 2003, avec une grande partie des flammes se concentrant dans ces zones du sud.

Par contre, le nord de la France, qui jouit d’un climat plus humide et moins enclin aux sécheresses, est beaucoup moins exposé. Toutefois, ce risque y croît également à cause du changement climatique, engendrant des vagues de chaleur exceptionnelles et une déshydratation progressive des sols.

Il apparaît donc que, tant en France qu’en Italie, la répartition géographique du risque d’incendie semble dépasser les zones historiquement sujettes, soulignant l’importance de la mise à jour des politiques de prévention et des stratégies de résilience face à un phénomène désormais exacerbé par les impacts du changement climatique.

Espagne
import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("../incendios.csv" , delimiter = ';')

chemin_fichier_geojson = "../spain.geojson"  
gdf_regions = gpd.read_file(chemin_fichier_geojson)

fig, ax = plt.subplots(figsize=(15, 15))  

gdf_regions.plot(ax=ax, color="lightgray", edgecolor="black")

ax.scatter(df["longitud"], df["latitud"], color="red", s=50, label="Incendies")

ax.set_xlim([ -9.5, 4 ])  # Limites de la longitude pour l'Espagne
## (-9.5, 4.0)
ax.set_ylim([36, 43.8])    # Limites de la latitude pour l'Espagne
## (36.0, 43.8)
plt.title("Carte des Incendies en Espagne par Région", fontsize=20)
plt.legend()

ax.set_axis_off()

plt.savefig("carte_incendies_espagne_grande_avec_points_agrandis.png", dpi=600, bbox_inches='tight')

# Afficher la carte
plt.show()

En 2022, obtenir des informations précises sur les feux en Espagne s’avère compliqué à cause de la diversité des sources et des spécificités des rapports.

Toutefois, des projections basées sur les observations antérieures et les analyses d’entités comme la Fondation MAPFRE indiquent que près de 200 000 incendies ont été dénombrés, ce qui représente une hausse par rapport à 2019 où le nombre estimé était approximativement de 184 000 incendies.

Cette hausse s’aligne sur une tendance plus vaste notée ces dernières années, à cause des conditions climatiques extrêmes et de la pression grandissante due à l’urbanisation et à la gestion des espaces naturels.

En Espagne, on distingue plusieurs types d’incendies : ceux domestiques, commerciaux et industriels, ainsi que les incendies de végétation qui sont particulièrement courants dans des zones méditerranéennes telles que l’Andalousie et la Catalogne.

Ces zones, réputées pour leurs étés chauds et secs, sont sujettes à une occurrence élevée d’incendies, généralement amplifiée par des périodes de sécheresse prolongées et des vagues de chaleur.

De plus, ces régions sont particulièrement vulnérables aux incendies de grande envergure à cause de leur végétation dense et de leur topographie montagneuse, qui favorisent une diffusion rapide des feux.

Un trait distinctif de l’année 2022 est la montée des pertes en vies humaines dues aux incendies, avec un total de 281 décès notés, témoignage d’un bilan particulièrement pesant.

D’après Statista 2022, cette année a connu de nombreuses pertes humaines, étant l’une des plus dévastatrices, en raison de plusieurs incendies d’ampleur qui ont touché des zones densément peuplées ou touristiques.

Ce nombre important indique non seulement une augmentation de ce phénomène, mais également des problèmes grandissants liés à la sécurité publique et à la gestion des désastres naturels.

Selon un rapport d’El Mundo, l’Espagne a enregistré une augmentation significative du nombre de pompiers, qui a atteint 42 011 en 2022, témoignant d’une intensification de la gestion des incendies par rapport aux années précédentes.

Cette hausse du personnel était supposée optimiser l’efficience du combat contre les incendies et des actions de prévention.

Toutefois, en dépit de cet engagement, le taux d’incendies demeure élevé, indiquant qu’il y a de sérieux problèmes structurels dans la gestion et la prévention des incendies.

Ces enjeux comportent des problématiques relatives à l’aménagement urbain, à la sauvegarde des espaces forestiers et à l’ajustement des infrastructures face aux conditions climatiques évolutives, y compris le réchauffement climatique.

En dépit d’importants progrès dans les technologies de détection et de lutte contre les incendies, les enjeux environnementaux tels que l’augmentation des vagues de chaleur, ainsi que les défis logistiques inhérents à la géographie et aux conditions climatiques extrêmes demeurent problématiques.

En outre, l’augmentation de la population, l’urbanisation des régions rurales et l’existence d’habitats en zones à risque amplifient la vulnérabilité face aux incendies.

Ces problèmes subsistent malgré les initiatives adoptées par les autorités locales et nationales pour accroître la résilience des régions et optimiser la réponse aux incendies.

Globalement, malgré l’existence de politiques solides de prévention et de gestion en Espagne, les incendies demeurent un danger significatif pour la sécurité publique et l’environnement.

Toutefois que les conditions météorologiques extrêmes exacerbaient le phénomène, celui-ci mettait également en évidence des vulnérabilités dans les démarches structurelles et organisationnelles.

Il insiste sur l’importance de continuer à œuvrer pour une meilleure compréhension des origines des incendies et la nécessité d’ajuster les tactiques d’intervention face à une réalité de plus en plus complexe.

Pour affronter ces défis constants dans les années futures, il sera primordial d’assurer une bonne collaboration entre les diverses entités locales, nationales et européennes, ainsi qu’une planification stratégique à long terme.

Conclusion des 3 Pays

Pour conclure, on constate une aggravation notable des incendies en Italie, en France et en Espagne au fil des dernières années, avec des statistiques de plus en plus alarmantes malgré les efforts constants déployés pour prévenir et gérer ces risques.

Dans ces trois nations méditerranéennes, les conditions météorologiques extrêmes et le réchauffement climatique sont au cœur de l’augmentation des incendies, intensifiant la fréquence et la gravité des flammes.

Les régions méridionales de chaque nation, connues pour leur climat chaud et aride, sont particulièrement sujettes aux risques, comprenant des zones telles que la Sicile, la Sardaigne, le sud de la France et l’Andalousie qui sont fréquemment frappées.

Il est à noter que sur le territoire français, la plus grande partie des incendies a lieu dans le sud, notamment en Provence-Alpes-Côte d’Azur, en Corse et en Occitanie.

Ces zones sont particulièrement sensibles aux incendies du fait de leur climat méditerranéen sec et de leur végétation hautement inflammable.

En revanche, le nord de la France connaît beaucoup moins d’incendies, du fait de son climat plus humide et des caractéristiques de sa végétation.

En dépit d’importants investissements en infrastructures, en ressources humaines et en technologies préventives, les statistiques demeurent élevées, mettant en évidence l’existence de défis structurels considérables dans la gestion des incendies.

La situation continue de se détériorer en raison de l’urbanisation croissante des régions à risque et de facteurs tels que la criminalité et la déforestation.

Face à cette menace en augmentation, il est primordial d’intensifier la collaboration internationale, de mettre en place des stratégies mieux alignées sur les contextes locaux et d’accroître la sensibilisation des citoyens aux dangers potentiels.

Devant ces défis complexes, il demeure crucial d’adopter une stratégie préventive et intégrée, associée à des politiques de résilience plus audacieuses, afin de minimiser les effets des incendies sur l’homme, l’environnement et l’économie dans ces nations.

5.3.6 Analyse des Incendies en Europe

library(readr)
library(dplyr)
library(ggplot2)
library(sf)
library(rnaturalearth)
## Warning: package 'rnaturalearth' was built under R version 4.4.3
library(rnaturalearthdata)
## Warning: package 'rnaturalearthdata' was built under R version 4.4.3
## 
## Attaching package: 'rnaturalearthdata'
## The following object is masked from 'package:rnaturalearth':
## 
##     countries110
df <- read_csv("../Data/annual-number-of-fires.csv")
## Rows: 601 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): Entity, Code
## dbl (2): Year, Annual number of fires
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df_filtre <- df %>% filter(Year >= 2012 & Year <= 2025)
resume_total <- df_filtre %>%
  group_by(Entity) %>%
  summarise(total = sum(`Annual number of fires`, na.rm = TRUE)) %>%
  arrange(desc(total))

pays_europe <- c(
  "Albania", "Andorra", "Armenia", "Austria", "Azerbaijan", "Belarus", "Belgium", "Bosnia and Herzegovina",
  "Bulgaria", "Croatia", "Cyprus", "Czechia", "Denmark", "Estonia", "Finland", "France", "Georgia",
  "Germany", "Greece", "Hungary", "Iceland", "Ireland", "Italy", "Kazakhstan", "Kosovo", "Latvia", "Liechtenstein",
  "Lithuania", "Luxembourg", "Malta", "Moldova", "Monaco", "Montenegro", "Netherlands", "North Macedonia",
  "Norway", "Poland", "Portugal", "Romania", "Russia", "San Marino", "Serbia", "Slovakia", "Slovenia", "Spain",
  "Sweden", "Switzerland", "Turkey", "Ukraine", "United Kingdom", "Vatican"
)

df_europe <- resume_total %>% filter(Entity %in% pays_europe)

europe_map <- ne_countries(scale = "medium", returnclass = "sf")
europe_map <- europe_map %>%
  left_join(df_europe, by = c("name" = "Entity"))

ggplot(data = europe_map) +
  geom_sf(aes(fill = total)) +
  scale_fill_gradientn(colors = rev(heat.colors(10)), na.value = "gray90") +
  labs(
    title = "Nombre d'incendies de forêt en Europe (2012–2025)",
    fill = "Nombre d'incendies"
  ) +
  coord_sf(xlim = c(-25, 60), ylim = c(34, 72), expand = FALSE) +  # Zoom sur l’Europe
  theme_minimal()

Cette analyse se penche sur les incendies à travers l’Europe sur une période de 13 ans.

Il est important de noter qu’elle ne se limite pas seulement aux pays méditerranéens, mais couvre également tous les pays situés sur le continent européen.

Nous allons effectuer une analyse informatique suivie d’une analyse statistique.

5.3.6.1 Analyse Informatique

D’abord, nous chargeons les bibliothèques nécessaires pour créer notre carte.

  • readr Il s’agit d’une bibliothèque utilisée pour une lecture efficace des fichiers de données sous forme de tableau.

  • dplyr C’est une librairie principalement utilisée pour la manipulation et le traitement des données.

  • ggplot2 C’est une bibliothèque qui va nous assister dans l’élaboration des graphiques basés sur la Grammaire des Graphiques de Wilkinson, facilitant ainsi la construction et la visualisation de graphiques complexes par superposition de couches.

  • sf Il s’agit d’une bibliothèque utilisée pour traiter des données géospatiales vectorielles conformément aux normes internationales.

  • rnaturalearth et rnaturalearthdata Il s’agit de deux ensembles qui nous donneront un accès direct aux données géographiques du projet Natural Earth, une source réputée pour ses données géographiques libres de haute qualité.

Suite à cela, nous entamons la phase d’importation et de filtrage des données en employant un chemin relatif pour accéder à notre fichier.

Nous faisons appel à la méthode prédéfinie read_csv() pour la lecture de ce dernier et mettons en œuvre un filtrage temporel via une prédiction logique au moyen de la fonction filter().

Ensuite, nous procédons à l’étape d’agrégation et de tri. Nous utilisons une stratégie d’agrégation bien établie nommée split-apply-combine.

Dans cette démarche, nous divisons les données par pays en employant la méthode préétablie group_by(), puis nous mettons en œuvre une fonction d’agrégation via le biais de la méthode summarise avec l’utilisation de sum.

Enfin, nous combinons et classons les résultats grâce à la méthode arrange.
Nous utilisons l’option na.rm=TRUE pour démontrer une gestion appropriée des valeurs absentes, aspect essentiel pour la robustesse de l’analyse.

Ensuite, on entre dans la phase de filtrage géographique, où un vecteur de pays explicite est mis en place plutôt qu’une détection automatique.

Cela nous assure un contrôle précis sur le champ géographique de l’analyse.

L’opérateur %in% offre un filtrage vectorisé performant qui nous aide à éviter les boucles explicites.

Par la suite, nous passons à l’étape de l’intégration géospatiale.

Pour ce faire, nous exploitons l’obtention de données géospatiales standardisées grâce à ne_countries(), qui permet de récupérer des objets vectoriels.

Ensuite, nous utilisons scale=“medium” afin d’équilibrer précision et performance dans le but de régler la résolution.

Après cela, on effectue une jointure relationnelle en utilisant un left_join, afin d’associer les données attributaires et géométriques.

Nous employons ensuite l’association explicite c(“name” = “Entity”) pour harmoniser les identifiants.

Il est important de noter que le choix du left_join plutôt que de l’inner_join est crucial, car il nous permettra de maintenir tous les pays sur la carte, même ceux dépourvus de données.

Ensuite, nous entamons la phase de construction du graphique en employant la méthode prédéfinie ggplot qui s’appuie sur le paradigme de la grammaire des graphiques.

Nous superposons les couches grâce à l’approche additive en utilisant l’opérateur +.

De plus, nous attribuons des valeurs aux propriétés visuelles via aes(), ce qui implique un mappage esthétique.

Par ailleurs, nous gérons les valeurs manquantes à l’aide du paramètre na.value pour les pays dépourvus de données.

Pour améliorer la présentation, nous utilisons la fonction coord_sf() pour définir l’aire d’intérêt et nous appliquons une optimisation visuelle en employant la méthode theme_minimal() afin de diminuer le désordre visuel.

5.3.6.1 Analyse Statistique

Les feux de forêt, devenus depuis de nombreuses années une problématique environnementale de premier plan à l’échelle mondiale.

Dans le cadre de l’Europe, la conjonction du changement climatique, de l’augmentation de l’urbanisation et de la déforestation a accru tant les occurrences que la sévérité de ces incendies.

Cette recherche se base sur une carte représentant le nombre de feux de forêt comptabilisés de 2012 à 2025 dans plusieurs pays d’Europe.

Ce travail d’analyse vise à déchiffrer les inégalités géographiques, à identifier les raisons possibles et à en évaluer les conséquences, tout en mettant l’accent sur les défis majeurs liés à la prévention et à la gestion durable des forêts.

La carte offre une perspective globale du continent européen, avec des couleurs variant du jaune clair (indiquant un faible nombre d’incendies) au bordeaux intense (qui indique un grand nombre d’incendies).

La période considérée va de 2012 à 2025, offrant ainsi une perspective à la fois rétrospective et prospective.

Ainsi, les pays sont classés en fonction de la fréquence des incendies de forêt observés :

En Ukraine, où le bordeaux très sombre est utilisé pour la représentation, on observe un pic avec plus de 60 000 incendies pendant cette période.

La Turquie est représentée en orange, une couleur qui indique entre 30 000 et 40 000 incendies.

Des pays du Sud de l’Europe tels que l’Espagne, la Grèce et l’Italie sont signalés en jaune-orange, témoignant de quelques milliers d’incendies.

En revanche, les pays de l’Europe centrale, de l’ouest et du nord comme l’Allemagne, la France, la Pologne, les nations scandinaves et le Royaume-Uni affichent des nuances très claires qui symbolisent une activité incendiaire faible (moins de 5 000).

La caractéristique la plus marquante de cette carte est la vivacité des couleurs en Ukraine, qui se distingue de façon incomparable.

Cela suscite plusieurs suppositions fascinantes :

L’Ukraine est parsemée de vastes forêts mixtes et de steppes, regorgeant de combustible qui pourrait s’enflammer lors d’une sécheresse prolongée.

Depuis 2014, l’instabilité géopolitique a pu provoquer une détérioration de la gestion environnementale dans certaines régions, demeurées sans surveillance appropriée et soumises à des incendies plus ardus à contrôler.

L’augmentation des températures, l’occurrence de sécheresses estivales et parfois de vents forts sont exacerbées par le changement climatique, qui intensifie les dangers naturels.

Située à la frontière de l’Europe et de l’Asie, la Turquie est particulièrement exposée aux incendies en raison de son climat méditerranéen sec pendant les mois d’été.

Par ailleurs, l’extension de l’urbanisation et de l’agriculture augmente le danger pour les êtres humains.

Des nations telles que l’Espagne, l’Italie et la Grèce connaissent régulièrement des incendies chaque été, même si quelques-uns attirent particulièrement l’attention.

Néanmoins, grâce à la surveillance par satellite, des plans d’action rapide et l’engagement des communautés dans la prévention, leur gestion des risques a connu une amélioration.

Cela pourrait justifier leurs statistiques moins élevées qu’en Ukraine ou en Turquie, malgré des conditions météorologiques favorables à l’incendie.

L’Europe de l’Ouest et du Nord paraît assez protégée, grâce à un climat plus humide qui entrave la diffusion naturelle, ainsi qu’à des stratégies forestières strictes telles que l’entretien des sous-bois et la gestion soutenable des forêts.

La représentation du nombre d’incendies forestiers en Europe de 2012 à 2025 met en lumière des écarts saisissants.

Bien que l’Ukraine et la Turquie semblent être les plus affectées, d’autres zones, historiquement touchées comme la Méditerranée occidentale, paraissent avoir mieux contrôlé le phénomène.

Cette recherche souligne la complexité des facteurs, entre environnement naturel, conditions climatiques et actions humaines.

Elle met également l’accent sur l’importance d’une gestion proactive, durable et collaborative des forêts en Europe.

Face à l’aggravation du changement climatique, la faculté des pays à prévoir, éviter et gérer ces désastres naturels façonnera en grande mesure le futur environnemental du continent.

6. Ressources

6.1 Ressources sur la Partie Informative

Jean-Luc CARTAULT, CLAIR, B., & KAPP, D. (2025, January 29). INCENDIES : Le phénomène physique. Encyclopædia Universalis. https://www.universalis.fr/encyclopedie/incendies/2-le-phenomene-physique/

Contributeurs aux projets Wikimedia. (2004, July 23). feu violent et destructeur. Wikipedia.org; Fondation Wikimedia, Inc. https://fr.wikipedia.org/wiki/Incendie

Risque incendie : causes, conséquences et moyens de lutte. (2021). Preventica.com. https://www.preventica.com/magazine/dossiers/prevention-du-risque-incendie-comment-garantir-la-securite-des-personnes-et-des-biens-11032021/risque-incendie-causes-consequences-et-moyens-de-lutte

6.2 Ressources sur la Partie Informatique

Cours et Tutoriels sur le Langage SQL. (2025). SQL. https://sql.sh/

Python Software Foundation. (2019). 3.7.3 Documentation. Python.org. https://docs.python.org/3/

Bien démarrer avec la documentation GitHub - Documentation GitHub. (2025). GitHub Docs. https://docs.github.com/fr/get-started

Qu’est-ce qu’une base de données ? Définition et fonctionnement. (2021, July 26). Hubspot.fr. https://blog.hubspot.fr/marketing/base-de-donnees

6.3 Ressources sur la Partie Statistique

Dérobert, N. (2025). Paramètres statistiques - Position et dispersion. Commentprogresser.com. https://commentprogresser.com/statistique-parametre-statistiques-moyenne-mediane-etendue-ecart-type.html

EFFIS - Welcome to EFFIS. (2015). Europa.eu. https://effis.jrc.ec.europa.eu/

Fire Weather Index | Copernicus. (n.d.). Climate.copernicus.eu. https://climate.copernicus.eu/fire-weather-index

Eurostat. (2022). Eurostat. Europa.eu. https://ec.europa.eu/eurostat

France’s unprecedented summer of wildfires, in maps and graphs. (2022, August 25). Le Monde.fr. https://www.lemonde.fr/en/les-decodeurs/article/2022/08/25/fires-in-france-maps-and-graphs-to-visualize-an-unprecedented-summer_5994672_8.html

https://www.climatechangepost.com/france/forest-fires/

The EU 2022 wildfire season was the second worst on record. (2023, April 20). Joint-Research-Centre.ec.europa.eu. https://joint-research-centre.ec.europa.eu/jrc-news-and-updates/eu-2022-wildfire-season-was-second-worst-record-2023-05-02_en

Spain: wildfire area burned 2022. (n.d.). Statista. https://www.statista.com/statistics/1265354/area-burned-by-wildfire-in-spain/

Ministère de l’Intérieur. (2022). 2022. Http://Www.interieur.gouv.fr/Publications/Statistiques/Securite-Civile/2022. https://www.interieur.gouv.fr/Publications/Statistiques/Securite-civile/2022

https://www.vigilfuoco.it/chi-siamo/le-statistiche/annuari-delle-statistiche-ufficiali-del-corpo-nationale-dei-vigili-del-fuoco

https://www.fundacionmapfre.org/publications/todas/estudio-victimas-incendios-en-espana/

Fire-related deaths by region Spain 2022. (n.d.). Statista. https://www.statista.com/statistics/980503/number-of-fire-related-deaths-by-region-spain/